I1M-0.2.0: Code for the Haskell course taught at the University of Seville.
LicenseCreative Commons
MaintainerJosé A. Alonso
Safe HaskellSafe-Inferred
LanguageHaskell2010

I1M.Cola

Description

TAD (tipo abstracto de datos) de las colas.

Este módulo contiene el código del TAD de las colas estudiado en el tema 15 del curso.

Synopsis

Documentation

data Cola a Source #

Tipo de las colas.

Instances

Instances details
Show a => Show (Cola a) Source # 
Instance details

Defined in I1M.Cola

Methods

showsPrec :: Int -> Cola a -> ShowS #

show :: Cola a -> String #

showList :: [Cola a] -> ShowS #

Eq a => Eq (Cola a) Source # 
Instance details

Defined in I1M.Cola

Methods

(==) :: Cola a -> Cola a -> Bool #

(/=) :: Cola a -> Cola a -> Bool #

vacia :: Cola a Source #

c1 es un ejemplo de cola que se usará en los siguientes ejemplos.

ghci> c1
C [10,9,8,7,6,5,4,3,2,1]

c1 = foldr inserta vacia [1..10]

vacia es la cola vacía. Por ejemplo,

ghci> vacia
C []

inserta :: a -> Cola a -> Cola a Source #

(inserta x c) es la cola obtenida añadiendo x al final de la cola c. Por ejemplo,

inserta 12 (foldr inserta vacia [1..10])  ==  C [10,9,8,7,6,5,4,3,2,1,12]

primero :: Cola a -> a Source #

(primero c) es el primer elemento de la cola c. Por ejemplo,

primero (foldr inserta vacia [1..10])  ==  10

resto :: Cola a -> Cola a Source #

(resto c) es la cola obtenida eliminando el primer elemento de la cola c. Por ejemplo,

resto (foldr inserta vacia [1..10])  ==  C [9,8,7,6,5,4,3,2,1]

esVacia :: Cola a -> Bool Source #

(esVacia c) se verifica si c es la cola vacía. Por ejemplo,

esVacia (foldr inserta vacia [1..10])  ==  False
esVacia vacia                          ==  True

valida :: Cola a -> Bool Source #

(valida c) se verifica si c representa una cola válida. Con esta representación, todas las colas son válidas.