¿Cómo instalar Haskell?
Hay varias opciones para instalar las herramientas necesarias para programar en Haskell y también varias opciones sobre cómo usarlas. A continuación se presenta una serie de pasos y algunas opciones para que elijamos según nuestra preferencia. No es una guía exhaustiva. El objetivo es disponer de un entorno moderno que nos permita experimentar y aprender el lenguaje. GHCup Primero vamos a instalar el instalador GHCup. En https://www.haskell.org/ghcup/ vamos a encontrar el siguiente comando que funciona para Linux, macOS, FreeBSD o WSL2 y lo podemos ejecutar desde una terminal. % curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh Nos va a hacer algunas preguntas, podemos usar las opciones por defecto que son buenas. Después de ejecutar el comando de arriba vamos a tener un ejecutable de ghcup en ~/.ghcup/bin (ese ~ representa la ruta de su usuario: seguramente /home/nombreusuario, /Users/nombreusuario o /mnt/c/Users/nombreusuario) Tenemos que verificar si el directorio ~/.ghcup/bin está en el PATH o no. Ejecutando ghcup --version deberíamos ver algo como lo siguiente: % ghcup --version The GHCup Haskell installer, version 0.1.40.0 Si en cambio ven algo como command not found significa que ~/.ghcup/bin no está en el PATH y debemos agregarlo. Cómo, depende de qué sistema operativo y shell usemos, pero tenemos que agregar ~/.ghcup/bin al PATH. Seguramente necesitemos poner la ruta completa de ~. Por ejemplo si usan macOS y zsh agregando lo siguiente a ~/.zprofile vamos a lograr tener ghcup en el path. export PATH="/Users/nombreusuario/.ghcup/bin:$PATH" Si hacemos algún cambio para modificar el PATH cerremos y vuelvamos a abrir la terminal. Probemos si ghcup --version anda esta vez. Si anduvo ya está la parte más engorrosa. GHC GHC es un compilador del lenguaje Haskell. Hay muchas versiones. GHCup permite elegir entre ellas, instalar una o varias versiones y definir cuál es la versión por defecto que se va a usar cuando se ejecute el comando ghc. Entre todas las versiones hay una que se llama recommended. Actualmente es la 9.4.8. Si ejecutamos ghcup tui vamos a ver un menu para elegir instalar (presionando i) y establecer como default (presionando s). % ghcup tui Seguramente ya tengamos instalada y establecida la versión recomendada de GHC. GHCup hace eso por defecto. Deberíamos ver un doble tilde verde en la primer columna de GHC. Un tilde para instalado y otro tilde para establecido. Para verificar si tienen GHC instalado podemos hacer lo siguiente: % ghc --version The Glorious Glasgow Haskell Compilation System, version 9.4.8 Si no funcionó podemos usar los siguientes comandos para instalar y establecer la versión recomendada de GHC. % ghcup install ghc recommended % ghcup set ghc recommended GHCi Junto con GHC viene GHCi, el intérprete. Con GHCi podemos experimentar en forma interactiva, sin necesidad de crear archivos incluso. % ghci GHCi, version 9.4.8: https://www.haskell.org/ghc/ :? for help ghci> 1+1 2 ghci> mayor a b = if a > b then a else b ghci> mayor 3 4 4 ghci> :q Leaving GHCi. Trabajando con archivos en GHCi También se pueden cargar archivos. Si creamos un archivo Ejemplo.hs (la convención es que empiecen con mayúscula) con el siguiente contenido: mayor a b = if a > b then a else b Podemos cargarlo en ghci usando :l Ejemplo.hs y usar la función definida en él. % ghci GHCi, version 9.4.8: https://www.haskell.org/ghc/ :? for help ghci> :l Ejemplo.hs [1 of 2] Compiling Main ( Ejemplo.hs, interpreted ) Ok, one module loaded. ghci> mayor 2 4 4 Si cambiamos el contenido del archivo con :r vamos a recargarlo ghci> :r [1 of 2] Compiling Main ( Ejemplo.hs, interpreted ) [Source file changed] Ok, one module loaded. Trabajando con VSCode Si elegimos VSCode como editor, lo recomendable es instalar extensión haskell.haskell. Se integra con GHCup y cuenta con algunas herramientas adicional. La configuración sugerida ( Ctrl + Shift + P o Cmd + Shift + P , > Open User Settings (JSON)) es la siguiente. { "haskell.manageHLS": "GHCup", "haskell.upgradeGHCup": false, "haskell.toolchain": { "ghc": "recommended", "hls": "recommended", "cabal": "recommended", "stack": null }, "editor.formatOnSave": true } Esta configuración sólo necesita que GHCup esté en el PATH y va a bajar otras herramientas cuando las necesite. Si ya tenemos ghc en PATH podemos omitir ésta configuración. Si abrimos el archivo Ejemplo.hs con el editor vamos a tener coloreo de sintaxis.

Hay varias opciones para instalar las herramientas necesarias para programar en Haskell y también varias opciones sobre cómo usarlas. A continuación se presenta una serie de pasos y algunas opciones para que elijamos según nuestra preferencia. No es una guía exhaustiva. El objetivo es disponer de un entorno moderno que nos permita experimentar y aprender el lenguaje.
GHCup
Primero vamos a instalar el instalador GHCup. En https://www.haskell.org/ghcup/ vamos a encontrar el siguiente comando que funciona para Linux, macOS, FreeBSD o WSL2 y lo podemos ejecutar desde una terminal.
% curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh
Nos va a hacer algunas preguntas, podemos usar las opciones por defecto que son buenas.
Después de ejecutar el comando de arriba vamos a tener un ejecutable de ghcup
en ~/.ghcup/bin
(ese ~
representa la ruta de su usuario: seguramente /home/nombreusuario
, /Users/nombreusuario
o /mnt/c/Users/nombreusuario
)
Tenemos que verificar si el directorio ~/.ghcup/bin
está en el PATH
o no. Ejecutando ghcup --version
deberíamos ver algo como lo siguiente:
% ghcup --version
The GHCup Haskell installer, version 0.1.40.0
Si en cambio ven algo como command not found
significa que ~/.ghcup/bin
no está en el PATH
y debemos agregarlo. Cómo, depende de qué sistema operativo y shell usemos, pero tenemos que agregar ~/.ghcup/bin
al PATH
. Seguramente necesitemos poner la ruta completa de ~
.
Por ejemplo si usan macOS y zsh agregando lo siguiente a ~/.zprofile
vamos a lograr tener ghcup
en el path.
export PATH="/Users/nombreusuario/.ghcup/bin:$PATH"
Si hacemos algún cambio para modificar el PATH
cerremos y vuelvamos a abrir la terminal. Probemos si ghcup --version
anda esta vez.
Si anduvo ya está la parte más engorrosa.
GHC
GHC es un compilador del lenguaje Haskell. Hay muchas versiones. GHCup permite elegir entre ellas, instalar una o varias versiones y definir cuál es la versión por defecto que se va a usar cuando se ejecute el comando ghc
.
Entre todas las versiones hay una que se llama recommended. Actualmente es la 9.4.8.
Si ejecutamos ghcup tui
vamos a ver un menu para elegir instalar (presionando i
) y establecer como default (presionando s
).
% ghcup tui
Seguramente ya tengamos instalada y establecida la versión recomendada de GHC. GHCup hace eso por defecto. Deberíamos ver un doble tilde verde en la primer columna de GHC. Un tilde para instalado y otro tilde para establecido.
Para verificar si tienen GHC instalado podemos hacer lo siguiente:
% ghc --version
The Glorious Glasgow Haskell Compilation System, version 9.4.8
Si no funcionó podemos usar los siguientes comandos para instalar y establecer la versión recomendada de GHC.
% ghcup install ghc recommended
% ghcup set ghc recommended
GHCi
Junto con GHC viene GHCi, el intérprete. Con GHCi podemos experimentar en forma interactiva, sin necesidad de crear archivos incluso.
% ghci
GHCi, version 9.4.8: https://www.haskell.org/ghc/ :? for help
ghci> 1+1
2
ghci> mayor a b = if a > b then a else b
ghci> mayor 3 4
4
ghci> :q
Leaving GHCi.
Trabajando con archivos en GHCi
También se pueden cargar archivos. Si creamos un archivo Ejemplo.hs
(la convención es que empiecen con mayúscula) con el siguiente contenido:
mayor a b = if a > b then a else b
Podemos cargarlo en ghci
usando :l Ejemplo.hs
y usar la función definida en él.
% ghci
GHCi, version 9.4.8: https://www.haskell.org/ghc/ :? for help
ghci> :l Ejemplo.hs
[1 of 2] Compiling Main ( Ejemplo.hs, interpreted )
Ok, one module loaded.
ghci> mayor 2 4
4
Si cambiamos el contenido del archivo con :r
vamos a recargarlo
ghci> :r
[1 of 2] Compiling Main ( Ejemplo.hs, interpreted ) [Source file changed]
Ok, one module loaded.
Trabajando con VSCode
Si elegimos VSCode como editor, lo recomendable es instalar extensión haskell.haskell
. Se integra con GHCup y cuenta con algunas herramientas adicional.
La configuración sugerida ( Ctrl + Shift + P o Cmd + Shift + P , > Open User Settings (JSON)
) es la siguiente.
{
"haskell.manageHLS": "GHCup",
"haskell.upgradeGHCup": false,
"haskell.toolchain": {
"ghc": "recommended",
"hls": "recommended",
"cabal": "recommended",
"stack": null
},
"editor.formatOnSave": true
}
Esta configuración sólo necesita que GHCup esté en el PATH
y va a bajar otras herramientas cuando las necesite. Si ya tenemos ghc en PATH
podemos omitir ésta configuración.
Si abrimos el archivo Ejemplo.hs
con el editor vamos a tener coloreo de sintaxis.