Вы находитесь на странице: 1из 2

Lenguajes de programacin

Haskell
Historia:
A comienzos de los ochenta surgieron una gran cantidad de lenguajes funcionales debido a los
avances en las tcnicas de implementacin, de los cuales se destacan: Hope, LML, Orwell, Erlang,
FEL, Alfl. Esta gran cantidad de lenguajes perjudicaba el desarrollo del paradigma funcional. En
septiembre de 1987, se celebr la conferencia FPCA en la que se decidi formar un comit
internacional que disease un nuevo lenguaje puramente funcional de propsito general denominado
Haskell. Al disear el lenguaje se observ que no exista un tratamiento sistemtico de la sobrecarga
con lo cual se construy una nueva solucin conocida como las clases de tipos.
Caractersticas:
o
o
o
o

Funciones de orden superior


Evaluacin perezosa
Listas intencionales
Programacin literaria

Ventajas:

Brevedad
Facilidad para comprender
Manejo de los tipos de datos
Reutilizacin de cdigo y polimorfismo
Evaluacin perezosa y programas modulares
Abstracciones poderosas y funciones como valores de primera clase
Recoleccin de basura

Desventajas:

Ineficiencia en la ejecucin de los lenguajes funcionales. Debido a su naturaleza dinmica,


estos lenguajes siempre han sido interpretados ms que compilados, resultando en una
prdida sustancial en velocidad de ejecucin.

Aplicaciones:
o Fran (Functional Reactive Animations) es una biblioteca para realizar animaciones
usando Haskell.

o Pan es una biblioteca para generar imgenes usando Haskell.


o Haskore es una biblioteca para generar msica usando Haskell.
Incluir un pequeo ejemplo (esto es con la finalidad de que revisen su sintaxis).
Ordena los dgitos de un nmero de manera ascendente:
inv::Integer->Integer->Integer
inv n a |n<10=n
|otherwise=(mod n 10)*(10^(a+1))+ inv (div n 10) (a+1)
may::Integer->Integer
may n |n<10=n
| (mod n 10)<=(mod (div n 10) 10)=may (((div n 100)*10)+(mod n 10))
|otherwise=(may (div n 10))
ord::Integer->String
ord 0=""
ord n |mod n 10==may n=show(mod n 10)++ord (div n 10)
|otherwise=ord (inv n 0)

Mesografa:
1.- http://aprendehaskell.es/content/Empezando.html
2.- http://labsys.frc.utn.edu.ar/ppr-2011/Unidad%20IV%20-%20Paradigma%20funcional/Unidad%20V
%20-%20Paradigma%20Funcional.pdf
3.- http://www.x.edu.uy/inet/ppt%20haskell.pdf
4.- http://program.webcindario.com/codigos/haskell.html

Вам также может понравиться