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.