lunes, 2 de febrero de 2026

Cabal en otro vistazo

Como vimos en una entrega anterior, Cabal es la herramienta estándar para gestionar dependencias, compilar y empaquetar proyectos Haskell, lo que te permite organizar y distribuir tu código de manera profesional.

Con Haskell (y Cabal) podemos desarrollar desde pequeñas utilidades de línea de comandos hasta aplicaciones web, bibliotecas científicas, proyectos de análisis de datos y compiladores.

Recapitulando:

  • Cabal es el sistema de construcción y empaquetado de Haskell. 
  • Se basa en archivos .cabal que describen el proyecto: nombre, dependencias, módulos, ejecutables, etc. 
  • Permite compilar, instalar y distribuir bibliotecas y programas de forma portable. 
  • Es el equivalente a package.json en Node.js o pom.xml en Maven.

Conversión de grados Celsius a Fahrenheit con Haskell (y Cabal)

Crearemos una sencilla calculadora de conversión de grados Celsius a Fahrenheit. El único dato necesario serán los grados en Celsius.

1. Mostramos la versión instalada de Cabal:

$ cabal --version

2. Creamos directorio y nos ubicamos en el mismo:

$ mkdir conversion_celsius && cd conversion_celsius 

3. Creamos el proyecto:

$ cabal update && cabal init

Una vez creado el proyecto podemos comenzar a crear la funcionalidad.

La fórmula para la conversión de grados Celsius a Fahrenhei es la siguiente:

F = 1.8*C + 32

Donde C son los grados Celsius.

Para definir una función en Haskell tomemos esta sintaxis:

nombreFunc :: TipoVar1 -> TipoVar2 -> TipoVarN

Por lo que la función quedaría de la siguiente manera:

conversionFahr :: Float -> Float

Editemos el programa Main.hs:

module Main where

-- Función que convierte grados Celsius a Fahrenheit
conversionFahr :: Float -> Float
conversionFahr c = 1.8 * c + 32

main :: IO ()
main = do
    putStrLn "Conversión grados Celsius a Fahrenheit en Haskell!"
    let gradoCels = 90.0
    let gradoFahr = conversionFahr gradoCels
    putStrLn ("Grados Celsius: " ++ show gradoCels)
    putStrLn ("Grados Fahrenheit: " ++ show gradoFahr)

Ejecutemos el programa:

$ cabal run

Salida:

Conversión grados Celsius a Fahrenheit en Haskell!
Grados Celsius: 90.0
Grados Fahrenheit: 194.0

Este programa no recibe datos desde teclado, editemos el programa para que pueda hacerlo.

module Main where

-- Función que convierte grados Celsius a Fahrenheit
conversionFahr :: Float -> Float
conversionFahr c = 1.8 * c + 32

main :: IO ()
main = do
    putStrLn "Conversor de Celsius a Fahrenheit"
    putStrLn "Ingresa la temperatura en grados Celsius:"
    input <- getLine
    let gradoCels = read input :: Float
    let gradoFahr = conversionFahr gradoCels
    putStrLn ("Grados Celsius: " ++ show gradoCels)
    putStrLn ("Grados Fahrenheit: " ++ show gradoFahr)

Ejecutemos el programa:

$ cabal run

Salida:

Conversor de Celsius a Fahrenheit
Ingresa la temperatura en grados Celsius:
60.4
Grados Celsius: 60.4
Grados Fahrenheit: 140.72

¡Hemos creado un proyecto con Haskell y Cabal!

Continuaremos con estas entregas sobre Haskell.

Enlaces:

https://www.haskell.org/cabal/
https://www.servant.dev/

No hay comentarios:

Publicar un comentario

Cabal en otro vistazo

Como vimos en una entrega anterior , Cabal es la herramienta estándar para gestionar dependencias, compilar y empaquetar proyectos Haske...