lunes, 22 de septiembre de 2025

Hola, mundo en Haskell

Haskell es un lenguaje de programación funcional cuyas características fundamentales son:

  • Existencia de variables inmutables. 
  • El estado mutable solo se puede mediante monads
  • Pureza por default (los efectos secundarios es mediante monads). 
  • Evaluación perezosa (lazy): los resultados solo se calculan si es necesario. 
  • En Haskell todo es una expresión
  • Funciones de primera clase: las funciones pueden definirse en cualquier lugar; pasarse como argumentos y devolverse como valores. 
  • Implementaciones compiladas e interpretadas disponibles. 
  • Inferencia de tipos completa: las declaraciones de tipo son opcionales. 
  • Coincidencia de patrones (pattern marching) en estructuras de datos: son de primera clase. 
  • Polimorfismo paramétrico.

Con Haskell nos olvidamos de la declaración de tipos, pero si hay tipos y son:

  • Bool. 
  • Char. 
  • String. 
  • Integer o Int. 
  • Float. 
  • Double. 
  • Num.

Veamos el clásico programa "Hola, mundo" en Haskell.

holamundo.hs

main = putStrLn "¡Hola, mundo en Haskell!"

Para poder compilarlo y ejecutarlo debemos tener Haskell instalado en nuestras máquinas: https://www.haskell.org/downloads/

Una vez instalado abrimos una terminal y tecleamos:

$ ghc --version

Ya podremos compilar nuestro programa:

$ ghc holamundo.hs

Nos creará un ejecutable:

$ holamundo.exe

Salida:

¡Hola, mundo en Haskell!

Si solo quieres ejecutar sin tener que compilar puedes usar ``runghc``:

$ runghc holamundo.hs

Hemos aprendido como compilar y ejecutar un programa en Haskell. Además de sus fundamentos.

Enlaces:

https://typeclasses.com/
https://www.reddit.com/r/haskell/comments/10jw67n/please_explain_monads_to_me_like_im_12/
https://wiki.haskell.org/All_About_Monads
https://haskellbook.com/
https://www.haskell.org/
https://cabal.readthedocs.io/en/stable/
https://www.haskell.org/ghc/
https://docs.haskellstack.org/en/stable/
https://github.com/haskell/haskell-language-server

No hay comentarios:

Publicar un comentario

Cabal

Cabal es un conjunto de herramientas para proyectos Haskell. Nos ayuda a crear y empaquetar bibliotecas y programas de Haskell . Defi...