LISTAS
Una
lista es una estructura de datos que representa un conjunto de datos de un
mismo tipo, es muy usada e importante en el lenguaje haskell.
La estructura
de datos fundamental en Haskell son las listas. Podemos
definirlas enumerando sus elementos o utilizando el símbolo especial “..”
Ejemplo:
Las definiciones [1,2,3,4,5] y [1.. 5] son
equivalentes.
Fichero “dobla_lista.hs”
dobla_lista =
[2*x |x <-[0..10]]
El programa dice literalmente “la lista de todos
los valores
2*x, siendo n un elemento
de la lista [0..10].
Podemos definir una lista infinita de la siguiente forma
[1..]
· Las listas
infinitas y las funciones que
calculan valores a partir de ellas son comunes
en Haskell.
·
Esto
es posible gracias a la evaluación
lenta o
perezosa
(lazy) de Haskell. No
se evalúa ningún elemento en
ninguna función
hasta que no sea necesario.
Su declaración es muy simple:
[Int]:
Representa una lista de enteros [4,5,9,25,60 ]
[Char]:
Representa una lista de chars ['l','i','n','u','x']
[Bool]:
Representa una lista de valores booleanos [True, False, True]
[String]:
Representa una lista de strings ["buenas”, “noches"]
[Float]:
Representa una lista de flotantes [2.5, 5.8, 4.3, 7.1 ]
Ejemplos:
-Sumar
los elementos de una lista. En este caso, el caso base es que la lista se
encuentre vacía y devuelve 0, mientras tanto que siga sumando los elementos con
la operación recursiva.
sumar::[Int]->Int
sumar [ ] = 0
sumar (x:xs) = x + sumar(xs)
sumar [ ] = 0
sumar (x:xs) = x + sumar(xs)
Main> sumar [5,4,7,8]
24
24
-Mayor elemento de una
lista:
mayor::[Int]->Int
mayor (x:xs)
| x > mayor(xs) = x
| otherwise = mayor(xs)
mayor (x:xs)
| x > mayor(xs) = x
| otherwise = mayor(xs)
Main> mayor
[78,24,56,93,21,237,46,74,125]
237
237
Revisado, buen blog nomas falta un poco mas de información con respecto a las listas.
ResponderEliminar