Exercitium1-0.1.0.0: Problemas de Exercitium (Volumen 1)

CopyrightExercitium (26-05-14)
LicenseGPL-3
MaintainerJoseA.Alonso@gmail.com
Safe HaskellSafe
LanguageHaskell2010

Trenza

Description

Trenzado de listas

Definir la función

trenza :: [a] -> [a] -> [a]

tal que (trenza xs ys) es la lista obtenida intercalando los elementos de xs e ys. Por ejemplo,

>>> trenza [5,1] [2,7,4]
[5,2,1,7]
>>> trenza [5,1,7] [2..]
[5,2,1,3,7,4]
>>> trenza [2..] [5,1,7]
[2,5,3,1,4,7]
>>> take 8 (trenza [2,4..] [1,5..])
[2,1,4,5,6,9,8,13]

Synopsis

Documentation

trenza :: [a] -> [a] -> [a] Source #

1ª definición (por comprensión).

trenza2 :: [a] -> [a] -> [a] Source #

2ª definición (con zipWith).

trenza3 :: [a] -> [a] -> [a] Source #

3ª definición (con zipWith y sin argumentos).

trenza4 :: [a] -> [a] -> [a] Source #

4ª definición (por recursión).

prop_trenza :: Eq a => [a] -> [a] -> Bool Source #

prop_trenza xs ys) se verifica si las definiciones de trenza son equivalentes para xs e ys. Por ejemplo,

>>> :{
 and [ prop_trenza [5,1] [2,7,4]
     , prop_trenza [5,1,7] [2..]
     , prop_trenza [2..] [5,1,7] ]
:}
True

verifica_trenza :: IO () Source #

Comprueba la equivalencia de las definiciones de trenza.

>>> verifica_trenza
+++ OK, passed 100 tests.