Volver a la página principal
miércoles 11 septiembre 2024
31

Cómo usar variables en Haskell

En Haskell, las variables funcionan de manera diferente a los lenguajes de programación imperativos como Java o Python. Al ser un lenguaje de programación funcional, Haskell trata a las variables como nombres simbólicos para representar valores, y son inmutables una vez asignadas, lo que significa que no pueden cambiar después de su inicialización.

Declaración básica de una variable

A diferencia de otros lenguajes, Haskell no utiliza palabras clave como var o let para declarar variables de manera global en su mayoría de usos. Simplemente se define un nombre seguido de un valor:

nombre = "Haskell"

En este ejemplo:

  • nombre es una variable que almacena el valor "Haskell".
  • No se puede reasignar el valor de nombre en ningún momento.

Ejemplo simple de uso de variables

mensaje = "Hola, Haskell!"
numero = 5

main = do
    putStrLn mensaje
    print numero

Aquí:

  • La variable mensaje almacena un string y numero almacena un entero.
  • La función putStrLn imprime cadenas de texto, y print se usa para imprimir números.

Salida:

Hola, Haskell!
5

Inmutabilidad de las variables

Una de las principales características de Haskell es la inmutabilidad. Esto significa que, una vez que asignas un valor a una variable, no puedes modificarlo.

x = 10
x = 20 -- Esto causará un error

El código anterior arrojará un error, ya que x no puede ser reasignada a otro valor. En Haskell, si necesitas un valor diferente, deberás crear una nueva variable o usar una expresión que derive un nuevo valor.

Uso de let para declarar variables en expresiones locales

Aunque las variables son inmutables, puedes crear nuevas variables en el contexto de una expresión o función usando let.

Ejemplo de let

main = do
    let x = 10
    let y = 20
    let suma = x + y
    print suma

Salida:

30

Aquí:

  • let crea una variable en el contexto local de la función main.
  • Las variables x, y, y suma están disponibles solo dentro de ese bloque.

Variables en funciones

En Haskell, puedes usar variables dentro de funciones para almacenar el resultado de una expresión y luego utilizarlo dentro del cuerpo de la función.

Ejemplo con variables en una función

suma :: Int -> Int -> Int
suma a b = resultado
    where resultado = a + b

En este ejemplo:

  • suma es una función que toma dos parámetros enteros (a y b).
  • resultado es una variable local creada dentro de la función mediante where, que almacena la suma de a y b.

Uso:

main = print (suma 3 4)

Salida:

7

Uso de where y let en funciones

Haskell permite definir variables dentro de una función utilizando where o let.

Ejemplo con where

calcularArea :: Float -> Float -> Float
calcularArea base altura = area
    where area = base * altura / 2
  • calcularArea calcula el área de un triángulo.
  • area es una variable calculada dentro de la función y está definida con where.

Ejemplo con let en una expresión

main = do
    let x = 5
    let y = 10
    let resultado = x * y
    print resultado

Este es un ejemplo típico donde let se utiliza dentro de un bloque do en el contexto de E/S.

Tipado de variables

Haskell tiene un sistema de tipado estático. Esto significa que el compilador verifica los tipos de las variables en tiempo de compilación. Los tipos pueden ser inferidos automáticamente, pero también puedes declararlos explícitamente para mayor claridad.

Declaración de tipos explícitos

nombre :: String
nombre = "Haskell"

numero :: Int
numero = 5
  • nombre es declarado como tipo String.
  • numero es declarado como tipo Int.

Conclusión

Las variables en Haskell son inmutables, lo que refuerza la programación funcional. Aunque no se pueden cambiar una vez asignadas, puedes utilizar let y where para crear variables locales dentro de expresiones y funciones. Haskell también cuenta con un sistema de tipado estático que ayuda a evitar errores relacionados con el tipo de datos.

Para más información sobre el uso de variables en Haskell, visita la documentación oficial de Haskell.

Etiquetas:
haskell
Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer