Está en la página 1de 4

¿Qué es la programación funcional?

La programación funcional nos es más que un paradigma de programación, es


decir, es una forma en la cual podemos resolver diferentes problemáticas, puede
ayudarnos a crear software más robusto, mantenible y fácil de testear.

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.

Es el hecho de que las funciones dentro de este paradigma de programación


pueden adoptar diferentes “formas”: estas pueden enlazarse entre sí como los
datos y utilizarse como parámetro y como resultado de la función. Estas funciones
permiten implementar y procesar tareas computacionales muy complejas
(especialmente las de naturaleza simbólica).

La programación funcional es un paradigma declarativo. Esto quiere decir que


nosotros expresaremos nuestra lógica sin describir controles de flujo; no usaremos
ciclos o condicionales.

¿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.

 Las funciones son el elemento básico de abstracción y reutilización de


código.

 Los programas se construyen mediante una composición de funciones.


 Las funciones son elementos de primer orden en el lenguaje. Pueden
guardarse en estructuras de datos, pasarse como argumentos y devolverse
desde otras funciones.

 El resultado de evaluar una expresión depende única y exclusivamente de


sus parámetros de entrada. Ante una misma entrada siempre obtenemos el
mismo resultado.

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:

También podría gustarte