Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Con este paradigma las funciones podrán ser asignadas a variables además
podrán ser utilizadas como entrada y salida de otras funciones. Por supuesto, en
muchos lenguajes de programación superiores hay funciones que se definen y
después se aplican.
¿Cómo funciona?
El paradigma funcional separa las estructuras de datos y las funciones que operan
sobre ellas. Los programas se construyen mediante la composición de funciones,
de manera que una función realiza su trabajo llamando a otras funciones cada vez
más simples hasta alcanzar las primitivas del lenguaje.
Las funciones son un elemento de primer orden esto permite, entre otras cosas, el
almacenamiento de funciones en una lista o en cualquier otra estructura de datos.
Puesto que las funciones son un elemento de primer orden, también pueden recibir
otras funciones como parámetros o devolverlas como resultado de su ejecución.
Este tipo de funciones que reciben o devuelven otras funciones se
llaman funciones de orden superior y son el elemento básico de composición y
reutilización de código en el paradigma funcional.
1. SCHEME
2. SCALA
3. Haskell
Cálculo Lambda
Es el más pequeño lenguaje universal de programación, consiste en en una regla
de transformación simple (sustituir variables) y un esquema simple para definir
funciones.
El cálculo lambda se puede decir que es equivalente a las máquinas Turing
porque es capaz de evaluar y expresar cualquier función computable.
Originalmente, Church había tratado de construir un sistema formal completo para
modelar la Matemática; pero cuando éste se volvió susceptible a la paradoja de
Russell, separó del sistema al cálculo lambda y lo usó para estudiar la
computabilidad, culminando en la respuesta negativa al problema de la parada.
Es un sistema formal que utiliza la abstracción del concepto de función desde un
punto de vista computacional. Esta consiste de 3 simples reglas:
1. El uso de variables que representan funciones o valores matemático-
lógicos. [x]
2. Definición de funciones como términos Lambda. [(λx.M)]
3. Aplicación de funciones. Dados términos consecutivos, el primero es una
función que toma como parámetros los valores necesarios a su derecha, de acuerdo
a su definición. (M N)
Con estas simples reglas se pueden formular los operadores lógicos más básicos,
como se muestra a continuación:
TRUE = λx. λy. x
FALSE = λx. λy. y
NOT = λb. b TRUE FALSE
AND = λx. λy. x y FALSE
OR = λx. λy. x TRUE y
Considérese las siguientes dos funciones. Por un lado, la función
identidad I(x)=xI(x)=x, que toma un único argumento, xx, e inmediatamente
devuelve xx. Por otro lado, la función suma S(x,y)=x+yS(x,y)=x+y, que toma dos
argumentos, xx e yy, y devuelve la suma de ambos: x+yx+y, usando estas dos
funciones como ejemplo podemos decir: