Cargando



Introducción al lenguaje Haskell

En este tutorial vas a aprender a dar los primeros pasos con Haskell, un lenguaje de programación funcional y perezoso. Cuenta con 9 ejemplos totalmente prácticos.


ago 23 2016 12:19
Intermedio
ago 23 2016 15:58

Vamos a ver una introducción al lenguaje de programación Haskell, se trata de un lenguaje funcional. En este tipo de los lenguajes las funciones van a realizar un calculo y van a devolver algo, no tiene ningún efecto secundario. Además las variables solo pueden tomar un valor, es decir si tenemos una variable llamada n a la que asignamos el valor 10, n valdrá 10, no podemos hacer que pase a valer 14, o 3.

 

Haskell es un lenguaje tipado estáticamente, otro ejemplo de lengiaje así es Java, esto quiere decir que cuando nosotros compilamos un código el compilador sabrá que tipo de datos pertenece a una parte de memoria (entero, cadena, carácter, boolean, etc.), al contrario de lo que pasa en lenguajes dinámicos, como son Python o Ruby.

 

Este lenguaje hace evaluaciones perezosas, no hará un calculo hasta que no sea completamente necesario un valor, además evitará que se repita dicha evaluación si necesitamos el calculo posteriormente. Para funciones exponenciales es algo interesante, ya que ayudará a reducir el tiempo de ejecucción.

 

Después de una introducción a algunas de las caracteristicas del lenguaje, vamos a empezar con la acción, el tutorial será completamente práctico, lo primero que vamos a necesitar es instalar Haskell en nuestro sistema, para este tutorial se va a utilizar Ubuntu, por lo tanto ejecutare el siguiente comando en la terminal:

sudo apt-get install haskell-platform
Si usas otro sistema operativo a continuación os dejamos un botón a la página oficial de Haskell, donde encontrarás como proceder a la instalación, ya sea en Windows, Mac o otra distribución de Linux:

 

 

Vamos a empezar con la práctica, dividiremos el tutorial en ejemplos, empezando por los más sencillos.

 

Ejemplo 1

Vamos a comenzar lanzando la consola de Haskell, para ello en una terminal escribiremos el siguiente comando:
ghci
Como puedes ver nos carga:

 

ghci-1.jpg

 

El promp es Prelude, podemos cambiarlo, en este caso vamos a ponerlo en hkl, para ello ejecutaremos:

:set prompt "hskl> "
Vemos como ha cambiado:

 

haskell-2.jpg

 

Para terminar con el primer ejemplo, vamos a ver como hacer unas operaciones en esta consola, a continuación está la captura de los ejemplos, podemos ver una suma, una división (vemos que nos muestra décimales, en otros lenguajes nos habría devuelto la parte entera), y una operación con parentesis, para apreciar su función.

 

haskell-3.jpg

 

Nota
Si deseamos salir de la consola de Haskell escribimos:
:q
Y damos enter.

 

Ejemplo 2

En el siguiente ejemplo vamos a trabajar con tipos de datos booleanos, vemoas la siguiente imagen para comprender su uso:

 

haskell-4.jpg

 

No requiere de mayor explicación, usamos and (&&) y or (||), además de la negación (not). De momento todo es fácil, como podemos observar.

 

Ejemplo 3

Podemos comparar cadenas, números, como hacemos en el resto de lenguajes, veamos como funciona:

 

haskell-5.jpg

 

La comparación entre tipos distintos nos arroja un error, como era de esperar.

 

Ejemplo 4

En este ejemplo vamos a ver funciones con las que contamos en Haskell, que probablemente utilizaremos a menudo:

 

haskell-6.jpg

 

Explicamos las funciones vistas en la anterior captura:

  • succ x: Devuelve el sucesor de x, si x es 3, decuelve 4.
  • min x y: Devuelve el número mínimo entre x e y, si y es 3 y x es 2, devuelve x.
  • max x y: Devuelve el máximo de x e y, en el ejemplo de 3 y 2, devuelve 3.

 

Ejemplo 5

En este ejemplo vamos a crear alguna “función”:

 

haskell-7.jpg

 

Vemos que hemos creado la función de exp, que lo que hace es elevar al cuadrado a un número, y una función llamada double, que va a devolver el doble del número que le pasemos, además puedes apreciar que puedes combinar lo que devuelve una función con otras operaciones como la suma.

 

Ejemplo 6

Vamos a crear nuestra propia función máximo, pero para 3 números, y vamos a usarla, a continuación la captura:

 

haskell-8.jpg

 

Ejemplo 7

Vamos a ver otras funciones con las que podemos trabajar en Haskell, son sencillas, las vamos a aplicar a listas.

 

haskell-9.jpg

 

Vemos como init lo que hace es devolver la lista sin el último elemento, tail hace lo contrario, devuelve la lista sin el primer elemento. Si vemos head devuelve el primer elemento de la lista y por supesto last devuelve el último elemento. Y las dos últimas funciones, length nos da la longitud de la lista y reverse nos la devuelve dada la vuelta. Existen más funciones, pero no es objetivo del tutorial ver todas, solo dar una aproximación para que puedas empezar a trabajar con Haskell.

 

Ejemplo 8

Vamos a ver el último ejemplo que calculara el factorial de un número, que tratara de crear un archivo, compilarlo y ejecutarlo, vamos a crear un archivo llamado test.hs y en el vamos a agregar el siguiente código:
fac n = (if n == 0 then 1 else n * fac (n-1))
main = print(fac 3)
Para compilar usamos la siguiente línea:
ghc -o test test.hs
Y para ejecutarlo ponemos:
./test
A continuación os dejamos la salida:

 

haskell-10.jpg

 

Bueno hasta aquí llega el tutorial sobre el lenguaje de programación Haskell, si ya tienes experiencia programando rápido le pillaras el truco, aunque si no estás acostumbrado a lenguajes funcionales al principio puede resultar algo extraña su programación.


¿Te ayudó este Tutorial?


Sin comentarios, sé el primero!

No esperes más y entra en Solvetic
Deja tus comentarios y aprovecha las ventajas de la cuenta de usuario ¡Únete!

X