TUPLAS
- Pueden agrupar elementos de diferentes tipos, pero su tamaño es fijo.
- Así, un registro de personas puede contener nombres (cadenas), si alguien es masculino o no (booleano) y fechas de nacimiento (enteros).
- Son utilizadas cuando sabes exactamente cuántos valores tienen que ser combinados y su tipo depende de cuantos componentes tengan y del tipo de estos componentes.
- Se denotan con paréntesis y sus valores se separan con comas, pueden contener una combinación de valores de distintos tipos.
- Son mucho más rígidas que las listas ya que para cada tamaño tienen su propio tipo, así que no podemos escribir una función general que añada un elemento a una tupla: tenemos que escribir una función para añadir duplas, otra función para añadir triplas, otra función para añadir cuádruplas, etc.
Ejemplos:
Si queremos representar el
nombre y la edad de alguien en Haskell, podemos utilizar la tripla: ("Christopher", "Walken", 55).
Como hemos visto en este ejemplo las tuplas también pueden contener listas.
Una de las tuplas
más simples que se puede imaginar es:
Prelude> :t
(True, 'H')
(True,
'H') :: (Bool, Char)
es decir, una tupla compuesta por un booleano y un caracter. Sin
embargo, los elementos de las tuplas también pueden ser compuestos, como un
String:
Prelude> :t
(True, "Hola")
(True,
"Hola") :: (Bool, [Char])
o inclusive el componente de una tupla puede ser otra tupla:
Prelude> :t
(False, ('H', "ola"))
(False, ('H', "ola")) :: (Bool,
(Char, [Char]))
También podemos tener tuplas de más de dos componentes
Prelude> :t
(True, 'H', [False])
(True, 'H',
[False]) :: (Bool, Char, [Bool])
es decir, un booleano, un caracter y una lista de booleanos.
Ejemplo en el que se combina todo lo anterior:
Prelude> :t
([True, False, True], "Chau", [(True, "True"), (False,
"False")])
([True, False,
True], "Chau", [(True, "True"), (False,
"False")])
:: ([Bool], [Char], [(Bool, [Char])])
Revisado, Buena información, un que otro error pero lo demás esta muy bien.
ResponderEliminar