| Copyright | Exercitium (23-04-14) |
|---|---|
| License | GPL-3 |
| Maintainer | JoseA.Alonso@gmail.com |
| Safe Haskell | Safe |
| Language | Haskell2010 |
Bandera_tricolor
Description
El problema de la bandera tricolor consiste en lo siguiente: Dada un lista de objetos xs que pueden ser rojos, amarillos o morados, se pide devolver una lista ys que contiene los elementos de xs, primero los rojos, luego los amarillos y por último los morados.
Definir el tipo de dato Color para representar los colores con los constructores R, A y M correspondientes al rojo, azul y morado y la función
banderaTricolor :: [Color] -> [Color]
tal que (banderaTricolor xs) es la bandera tricolor formada con los elementos de xs. Por ejemplo,
>>>banderaTricolor [M,R,A,A,R,R,A,M,M][R,R,R,A,A,A,M,M,M]>>>banderaTricolor [M,R,A,R,R,A][R,R,R,A,A,M]
- data Color
- banderaTricolor :: [Color] -> [Color]
- banderaTricolor2 :: [Color] -> [Color]
- banderaTricolor3 :: [Color] -> [Color]
- banderaTricolor4 :: [Color] -> [Color]
- banderaTricolor5 :: [Color] -> [Color]
- prop_banderaTricolor :: [Color] -> Bool
- verifica_banderaTricolor :: IO ()
Documentation
Definición de los colores
banderaTricolor :: [Color] -> [Color] Source #
1ª definición
banderaTricolor2 :: [Color] -> [Color] Source #
2ª definición (por comprensión):
banderaTricolor3 :: [Color] -> [Color] Source #
3ª definición (por comprensión y concat):
banderaTricolor4 :: [Color] -> [Color] Source #
4ª definición (por recursión):
banderaTricolor5 :: [Color] -> [Color] Source #
5ª definición (por recursión):
prop_banderaTricolor :: [Color] -> Bool Source #
(prop_banderaTricolor xs) se verifica si todas las definiciones de banderaTricolor son equivalentes para xs. Por ejemplo,
>>>prop_banderaTricolor [M,R,A,A,R,R,A,M,M]True>>>prop_banderaTricolor [M,R,A,R,R,A]True
verifica_banderaTricolor :: IO () Source #
Comprueba la equivalencia de las definiciones
>>>verifica_banderaTricolor+++ OK, passed 100 tests.