jueves, 20 de febrero de 2014

LISTAS

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 literalmentela 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)
Main> sumar [5,4,7,8]
24

-Mayor elemento de una lista:
mayor::[Int]->Int
mayor (x:xs)
| x > mayor(xs) = x
| otherwise = mayor(xs)
Main> mayor [78,24,56,93,21,237,46,74,125]
237

1 comentario:

  1. Revisado, buen blog nomas falta un poco mas de información con respecto a las listas.

    ResponderEliminar