| Copyright | Exercitium (07-05-14) |
|---|---|
| License | GPL-3 |
| Maintainer | JoseA.Alonso@gmail.com |
| Safe Haskell | Safe |
| Language | Haskell2010 |
Segmentos_consecutivos
Description
Definir la función
segmentos :: (Enum a, Eq a) => [a] -> [[a]]
tal que (segmentos xss) es la lista de los segmentos de xss formados por elementos consecutivos. Por ejemplo,
>>>segmentos [1,2,5,6,4][[1,2],[5,6],[4]]>>>segmentos [1,2,3,4,7,8,9][[1,2,3,4],[7,8,9]]>>>segmentos "abbccddeeebc"["ab","bc","cd","de","e","e","bc"]
Nota: Se puede usar la función succ tal que (succ x) es el sucesor de x. Por ejemplo,
succ 3 == 4 succ 'c' == 'd'
Documentation
segmentos2 :: (Enum a, Eq a) => [a] -> [[a]] Source #
2ª definición.
inicial :: (Enum a, Eq a) => [a] -> [a] Source #
(inicial xs) es el segmento inicial de xs formado por elementos consecutivos. Por ejemplo,
>>>inicial [1,2,5,6,4][1,2]>>>inicial "abccddeeebc""abc"
inicial2 :: (Enum a, Eq a) => [a] -> [a] Source #
2ª definición de inicial (con uncurry)
>>>inicial2 [1,2,5,6,4][1,2]>>>inicial2 "abccddeeebc""abc"
prop_segmentos :: (Enum a, Eq a) => [a] -> Bool Source #
(prop_segmentos xs) se verifica si las definiciones de segmentos son equivalentes sobre xs. Por ejemplo,
>>>prop_segmentos [1,2,5,6,4]True>>>prop_segmentos [1,2,3,4,7,8,9]True>>>prop_segmentos "abbccddeeebc"True
verifica_segmentos :: IO () Source #
Comprueba la equivalencia de las definiciones de segmentos.
>>>verifica_segmentos+++ OK, passed 100 tests.