domingo, 21 de noviembre de 2010

ML y Haskell (Lenguajes Funcionales)

ML


ML es un lenguaje de programación de propósito general de la familia de los lenguajes de programación funcional desarrollado por Robin Milner y otros a finales de los años 1970 en la Universidad de Edimburgo.


Frecuentemente se clasifica a ML como un lenguaje funcional impuro dado que permite programar imperativamente con efectos de borde, a diferencia de otros lenguajes de programación funcional, tales como Haskell.
Entre las características de ML se incluyen evaluación por valor, álgebra de funciones, manejo automatizado de memoria por medio derecolección de basura, polimorfismo parametrizado, análisis de estático de tipos, inferencia de tipos, tipos de datos algebraicos, llamada por patrones y manejo de excepciones. Esta combinación particular de conceptos hace que sea posible producir una de los mejores compiladores actualmente disponibles.
Ejemplo:

-fun fac 0 = 1 = | fac n = n*(fac (n-1));

val fac = fn : int -> int

Haskell
Haskell es un lenguaje de programación puramente funcional de propósito general y fuertemente tipado.
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 pueden 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 funcionalessobre los que más se ha investigado.

Ejemplo:




Bibliografia

1 comentario: