¿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.

Mar 24, 2025 - 20:28
 0
¿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.