Translate

lunes, 14 de octubre de 2013

Primeros pasos en Haskell


Haskell es un lenguaje funcional que les aconsejo que aprendan. Antes que nada vamos a instalar el compilador GHC o Hugs. Yo voy a usar GHC, si usamos una distro basada en Debian, podemos hacer lo  siguiente:

apt-get install ghc6 libghc6-mtl-dev

y si tenemos un RHEL podemos hacer:

yum install ghc6 libghc6-mtl-dev

GHC puede tomar un script Haskell y compilar pero también puede trabajar de modo interactivo; lo que se conoce como RELP. Luego de instalar estos paquete ejecutamos ghci en una consola:

[emanuel@localhost ~]$ ghci
GHCi, version 7.4.1: http://www.haskell.org/ghc/  :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
Prelude> 2 +2
4
Prelude> 5 + 5
10
Prelude> 2 * 2
4
Prelude> 5 / 2
2.5
Prelude> True  && False
False
Prelude> 5 == 5
True
Prelude> 5 /= 4
True
Prelude> 5 + "hola"

<interactive>:9:3:
    No instance for (Num [Char])
      arising from a use of `+'
    Possible fix: add an instance declaration for (Num [Char])
    In the expression: 5 + "hola"
    In an equation for `it': it = 5 + "hola"
Prelude>

Como podemos ver podemos utilizar Haskell como calculadora, pero en la ultima linea, que sucedió? El error que fue lanzado fue porque quise sumar 5 de tipo numero con una palabra o String "hola" y como Haskell es de tipado estático, no puede sumar estas cosas. 

También podemos llamar funciones de la siguiente forma:

Prelude> min 3 5
3
Prelude> max 100 100
100
Prelude> max 3000 3 
3000

Como pueden ver el llamado de funciones no necesita los paréntesis como java o C++ o C. 

Por este post hemos avanzado bastante, en próximos post vamos a seguir aprendiendo Haskell!