Los lenguajes funcionales se basan en la declaración de funciones aritméticas como suma, resta, multiplicación, calculo diferencial entre otros, se trata de un lenguaje expresivo y matemáticamente elegante.
Se entiende por lenguaje expresivo, la capacidad que tiene un lenguaje de expresar soluciones a problemas complejos de simple y concisa.
Ausencia de efectos colaterales
El valor de una expresión solo depende de los valores de sus subexpresiones, si las tiene.
Valores de Funciones de Primer Orden y
Funciones de Orden Superior.Polimorfismo.
Tipo Lista y sus Operadores.
Recursión.
Retorno de datos estructurados.
Constructores de objetos estructurados.
Recolección de Basura.
VENTAJAS
Más fáciles de escribir, depurar y mantener que los lenguajes imperativos gracias a la ausencia de efectos de borde.
DESVENTAJAS
Se quedan cortos en portabilidad, riqueza de librerías, interfaces con otros lenguajes y herramientas de depuración.
Es un lenguaje de programación estandarizado multi-propósito puramente funcional con semánticas no estrictas y fuerte tipificación estática
Por ejemplo
Cuadrado 3 -> 9
2. Definir la función raíces tal que raíces a b c es la lista de las raíces de la ecuación ax2 + bc + c = 0. Por ejemplo,
Raíces 1 3 2 ; [-1.0,-2.0]