1 Historia
A partir de la publicacin de Miranda, en 1985, los lenguajes funcionales proliferaron. En 1987, existan compitiendo entre ellos ms de una docena de lenguajes de
programacin puros funcionales no estrictos. Durante la
conferencia sobre Lenguajes de Programacin Funcional
y Arquitecturas de Ordenador (FPCA '87) en Portland,
Oregn, se mantuvo un encuentro durante el cual se alcanz un fuerte consenso entre sus participantes para formar un comit que deniese un estndar abierto para tales lenguajes. Esto se hizo con el propsito expreso de
consolidar los lenguajes existentes en uno nico que sirviera como base para la investigacin futura en diseo
de lenguajes.[2] La primera versin de Haskell (Haskell
1.0) se deni en 1990.[3] Los esfuerzos del comit resultaron en una serie de deniciones del lenguaje, que culminaron a nales de 1997 en Haskell 98, que se intent
fuera una versin del lenguaje mnima, estable y portable, junto con una biblioteca estndar asociada para la
enseanza, y como base de futuras extensiones. El comit
expresamente aprob la creacin de extensiones y variantes de Haskell 98 mediante la adicin e incorporacin de
caractersticas experimentales.
4 IMPLEMENTACIONES
del estndar de Haskell 98, llamado informalmente Has- 3.5 El tipo Double
kell (Haskell Prime).[5] Este proceso intenta producir
una revisin menor de Haskell 98.[6] En 2010 se lanza Los valores de este tipo son nmeros reales, de mayor
rango y con aproximaciones ms precisas que los de tipo
Haskell 2010.
Float.
Introduccin a Haskell
3.1
El tipo Bool
3.7 Tuplas
3.1.1
Funciones y operadores
Los elementos que forman una tupla pueden ser del mismo o de distintos tipos. Es un conjunto de componentes
relacionados. Por ejemplo: ('a', True,3)
3.8 Listas
otherwise :: Bool. Funcin constante que devuelve el Los valores de este tipo son una coleccin de elementos
del mismo tipo. Existen dos constructores para listas:
valor True.
3.2
El tipo Int
4 Implementaciones
3.3
El tipo Integer
Todas las siguientes implementaciones cumplen en su toLos valores de este tipo son nmeros enteros de precisin talidad, o casi en su totalidad, con los estndares de Hasilimitada que tienen las mismas funciones y operadores kell 98 y son distribuidas bajo licencias Open Source. No
del tipo Int.
se conocen implementaciones comerciales del lenguaje.
3.4
El tipo Float
Funciones y operadores
(+), (-), (*), (/), (^) :: Float -> Float -> Float. Suma,
resta, producto, divisin real y potencia de exponente entero.
abs, signum, negate :: Int -> Int. Valor absoluto,
signo y negacin.
(**) :: Float -> Float. Potencia de exponente real
6.2
a minimizar la utilizacin de la memoria convirtin- El propsito del evento es discutir la experiencia de los
dola en una buena opcin para arquitecturas lentas programadores con Haskell, y el futuro desarrollo del leno antiguas.
guaje. El alcance del simposio incluye todos los aspectos
del diseo, la semntica, la teora, la aplicacin, la ejecu HBC () es otro compilador a cdigo nativo de Has- cin, y la enseanza de Haskell.
kell. Si bien no ha sido actualizado en el ltimo tiemAntes de 2008, el evento era conocido como "The Haspo sigue siendo bastante til.
kell Workshop". El cambio de nombre reeja el aumento
Helium () es un nuevo dialecto de Haskell. Se centr constante de la inuencia del evento en la comunidad en
en ser muy fcil de aprender; por ello, no incluye general, as como un creciente nmero de presentaciones
soporte para todo el estndar de Haskell, haciendo de alta calidad que hacen el proceso de aceptacin muy
competitivo.
que no sea totalmente compatible.
Entornos de desarrollo
Existen varios IDEs (Integrated Development Environment, o en espaol, entornos de desarrollo integrado) y/o
plugins que se pueden utilizar para desarrollar aplicaciones en Haskell. La mayora son open source, pero tambin
existen de ndole comercial.
5.1
7 Ejemplos
Open Source
KDevelop
Vim
Emacs
Atom
5.2
Sublime-Haskell
6.1
Comerciales
Comunidad
The Haskell Symposium
The Haskell Symposium es un simposio anual organizado por la International Conference on Functional Programming (ICFP). El simposio est patrocinado por la
Association for Computing Machinery (ACM), bajo los
auspicios del ACM Special Interest Group on programming
languages (SIGPLAN).
11 ENLACES EXTERNOS
--Funcin
para
calcular
el
valor
de
e
(2.71828182845905) euler :: Double -> Double euler 0.0 = 1.0 euler n = 1.0 / product [1..n] + euler (n
- 1.0) --Algoritmo de ordenacin quicksort qs::Ord
a=>[a]->[a] qs [] = [] qs (p:xs) = qs [x|x<-xs,x<p] ++ [p]
++ qs [x|x<-xs,x>=p]
Vase tambin
QuickCheck
Notas y referencias
10
Bibliografa
11
Ingls:
Enlaces externos
12
12.1
Haskell Fuente: https://es.wikipedia.org/wiki/Haskell?oldid=92480016 Colaboradores: Moriel, DefLog, Janus~eswiki, Dodo, Triku, Elwikipedista, JavierCantero, MatiasBellone, Emijrp, Rembiapo pohyiete (bot), Orgullobot~eswiki, RobotQuistnix, Chobot, Caiserbot, Yrbot, FlaBot, Vitamine, BOTijo, YurikBot, GermanX, KnightRider, Eskimbot, Gtz, CaStarCo, Chlewbot, Tomatejc, Rbonvall, Tamorlan,
CEM-bot, SanIctcola, Toranks, Alexav8, Jvillais, Thijs!bot, Makam~eswiki, JoaquinFerrero, Diablo Cris, JAnDbot, Wybot, Nueva era,
Muro de Aguas, TXiKiBoT, Elisardojm, Rei-bot, Jcabot, VolkovBot, Matdrodes, Muro Bot, El Pantera, SieBot, Fpina7, Loveless, Wilson
Fisk, Grace Pahuasi, Taty2007, AVBOT, HavokCR, Luckas-bot, FariBOT, Simeon87, Xqbot, D'ohBot, Amarco90, Ripchip Bot, EmausBot, Guarddon, Grillitus, WikitanvirBot, Mjbmrbot, Antonorsi, MerlIwBot, JABO, KLBot2, Federicobond, Antimaterial, Syrusakbary,
Elvisor, MahdiBot, Pablo Darko, BenjaBot, Freinn, Tincho morales01, Juan-Miguel Gracia y Annimos: 59
12.2
Imgenes
12.3