Lenguajes Funcionales
Enviado por taly09 • 25 de Octubre de 2014 • 372 Palabras (2 Páginas) • 485 Visitas
¿Características de los lenguajes funcionales?
Los lenguajes funcionales, o en general, de cualquier paradigma al que no estemos acostumbrados, nos pueden dar ideas que podemos aplicar no solamente en estos lenguajes que tienen rasgos funcionales, sino en casi cualquier lenguaje.
•COMPLETAR LA SIG. TABLA:
Lenguaje Características Código-Ejemplo
HASKELL Las características más interesantes de Haskell incluyen el soporte para tipos de datos y funciones recursivas, listas, tuplas, guardas y calce de patrones. La combinación de las mismas puede resultar en algunas funciones casi triviales cuya versión en lenguajes imperativos pueden llegar a resultar extremadamente tediosas de programar. Haskell es, desde 2002, uno de los lenguajes funcionales sobre los que más se ha investigado. Función recursiva para calcular el factorial de un número
--Función recursiva para calcular el factorial de un número
factorial :: (Integral a) => a -> a
factorial 0 = 1
factorial n = n * factorial (n - 1)
ERLANG Erlang es un lenguaje de programación concurrente (u orientado a la concurrencia) y un sistema de ejecución que incluye una máquina virtual (BEAM) y bibliotecas (OTP).
La creación, gestión y comunicación de procesos es sencilla en Erlang, mientras que en muchos lenguajes, los hilos se consideran un apartado complicado y propenso a errores. En Erlang toda concurrencia es explícita. Cálculo del factorial:
-module(fact).
-export([fac/1]).
fac(0) -> 1;
fac(N) '''when''' N > 0 -> N * fac(N-1).
LISP Los programas Lisp pueden manipular el código fuente como una estructura de datos, dando lugar a los macro sistemas que permiten a los programadores crear una nueva sintaxis de lenguajes de programación de dominio específico empotrados en Lisp.
La intercambiabilidad del código y los datos también da a Lisp su instantáneamente reconocible sintaxis. Todo el código del programa es escrito como expresiones S o listas entre paréntesis. Hola mundo:
(format t "¡Hola, mundo!")
SCHEME Su objetivo no es acumular un gran número de funcionalidades, sino evitar las debilidades y restricciones que hacen necesaria su adición. Así, Scheme proporciona el mínimo número posible de nociones primitivas, construyendo todo lo demás a partir de un reducido número de abstracciones. Función factorial:
(define (factorial n)
(cond ((= n 0) 1)
(else (* n (factorial (- n 1))))))
(factorial 5)
;; => 120
...