En Haskell, los tipos de datos son fundamentales para la programación, ya que permiten definir y manipular datos de manera segura y eficiente. En esta sección, exploraremos los tipos de datos básicos que Haskell ofrece, cómo declararlos y utilizarlos en tus programas.

Contenido

Tipos Numéricos

Haskell soporta varios tipos numéricos, cada uno adecuado para diferentes necesidades:

  • Int: Enteros de tamaño fijo.
  • Integer: Enteros de tamaño arbitrario.
  • Float: Números de punto flotante de precisión simple.
  • Double: Números de punto flotante de doble precisión.

Ejemplo de Uso

-- Declaración de variables numéricas
myInt :: Int
myInt = 42

myInteger :: Integer
myInteger = 12345678901234567890

myFloat :: Float
myFloat = 3.14

myDouble :: Double
myDouble = 2.718281828459045

Explicación

  • myInt es un entero de tamaño fijo.
  • myInteger es un entero de tamaño arbitrario, útil para cálculos que requieren precisión más allá de los límites de Int.
  • myFloat y myDouble son números de punto flotante, con Double ofreciendo mayor precisión.

Booleanos

El tipo Bool en Haskell representa valores booleanos, que pueden ser True o False.

Ejemplo de Uso

-- Declaración de variables booleanas
isSunny :: Bool
isSunny = True

isRaining :: Bool
isRaining = False

Explicación

  • isSunny y isRaining son variables booleanas que pueden ser True o False.

Caracteres y Cadenas

Haskell utiliza el tipo Char para representar caracteres individuales y el tipo [Char] o String para representar cadenas de texto.

Ejemplo de Uso

-- Declaración de caracteres y cadenas
myChar :: Char
myChar = 'A'

myString :: String
myString = "Hello, Haskell!"

Explicación

  • myChar es un carácter individual.
  • myString es una cadena de texto, que en Haskell es una lista de caracteres ([Char]).

Tuplas

Las tuplas son estructuras de datos que pueden contener múltiples valores de diferentes tipos. Se definen utilizando paréntesis y comas.

Ejemplo de Uso

-- Declaración de tuplas
myTuple :: (Int, String, Bool)
myTuple = (1, "Hello", True)

Explicación

  • myTuple es una tupla que contiene un entero, una cadena y un booleano.

Listas

Las listas en Haskell son colecciones de elementos del mismo tipo. Se definen utilizando corchetes y comas.

Ejemplo de Uso

-- Declaración de listas
myList :: [Int]
myList = [1, 2, 3, 4, 5]

myStringList :: [String]
myStringList = ["Hello", "World"]

Explicación

  • myList es una lista de enteros.
  • myStringList es una lista de cadenas de texto.

Ejercicios Prácticos

Ejercicio 1: Declaración de Variables

Declara una variable de cada tipo básico que hemos visto (Int, Integer, Float, Double, Bool, Char, String, Tupla, Lista).

Ejercicio 2: Operaciones Básicas

Escribe una función que tome dos enteros y devuelva su suma, resta, multiplicación y división.

Ejercicio 3: Manipulación de Listas

Escribe una función que tome una lista de enteros y devuelva la lista con cada elemento incrementado en 1.

Soluciones

Solución Ejercicio 1

-- Declaración de variables
myInt :: Int
myInt = 10

myInteger :: Integer
myInteger = 1000000000000

myFloat :: Float
myFloat = 3.14

myDouble :: Double
myDouble = 2.71828

myBool :: Bool
myBool = True

myChar :: Char
myChar = 'H'

myString :: String
myString = "Haskell"

myTuple :: (Int, String, Bool)
myTuple = (42, "Answer", True)

myList :: [Int]
myList = [1, 2, 3, 4, 5]

Solución Ejercicio 2

-- Operaciones básicas
basicOperations :: Int -> Int -> (Int, Int, Int, Float)
basicOperations x y = (x + y, x - y, x * y, fromIntegral x / fromIntegral y)

Solución Ejercicio 3

-- Incrementar elementos de una lista
incrementList :: [Int] -> [Int]
incrementList xs = [x + 1 | x <- xs]

Conclusión

En esta sección, hemos cubierto los tipos de datos básicos en Haskell, incluyendo tipos numéricos, booleanos, caracteres, cadenas, tuplas y listas. Estos tipos son fundamentales para cualquier programa en Haskell y proporcionan una base sólida para construir aplicaciones más complejas. En la próxima sección, exploraremos cómo utilizar variables y funciones en Haskell.

© Copyright 2024. Todos los derechos reservados