Copyright | Exercitium (06-05-14) |
---|---|
License | GPL-3 |
Maintainer | JoseA.Alonso@gmail.com |
Safe Haskell | Safe |
Language | Haskell2010 |
Lista_cuadrada
Description
Definir la función
listaCuadrada :: Int -> a -> [a] -> [[a]]
tal que (listaCuadrada n x xs) es una lista de n listas de longitud n formadas con los elementos de xs completada con x, si no xs no tiene suficientes elementos. Por ejemplo,
>>>
listaCuadrada 3 7 [0,3,5,2,4]
[[0,3,5],[2,4,7],[7,7,7]]>>>
listaCuadrada 3 7 [0..]
[[0,1,2],[3,4,5],[6,7,8]]>>>
listaCuadrada 2 'p' "eva"
["ev","ap"]>>>
listaCuadrada 2 'p' ['a'..]
["ab","cd"]>>>
listaCuadrada 1 0 ([]::[Int])
[[0]]
- listaCuadrada :: Int -> a -> [a] -> [[a]]
- grupos :: Int -> [a] -> [[a]]
- listaCuadrada2 :: Int -> a -> [a] -> [[a]]
- listaCuadrada3 :: Int -> a -> [a] -> [[a]]
- listaCuadrada4 :: Int -> a -> [a] -> [[a]]
- prop_listaCuadrada :: NonNegative Int -> Int -> [Int] -> Bool
- verifica_listaCuadrada :: IO ()
Documentation
listaCuadrada :: Int -> a -> [a] -> [[a]] Source #
1ª definición (con auxiliar).
grupos :: Int -> [a] -> [[a]] Source #
(grupos n xs) es la lista obtenida agrupando los elementos de xs en grupos de n elementos, salvo el último que puede tener menos. Por ejemplo,
>>>
grupos 2 [4,2,5,7,6]
[[4,2],[5,7],[6]]>>>
take 3 (grupos 3 [1..])
[[1,2,3],[4,5,6],[7,8,9]]
listaCuadrada2 :: Int -> a -> [a] -> [[a]] Source #
2ª definición (por comprensión).
listaCuadrada3 :: Int -> a -> [a] -> [[a]] Source #
3ª definición (por iteración).
listaCuadrada4 :: Int -> a -> [a] -> [[a]] Source #
4ª definición (por iteración sin el último argumento).
prop_listaCuadrada :: NonNegative Int -> Int -> [Int] -> Bool Source #
(prop_listaCuadrada n x xs) se verifica si las definiciones de listaCuadrada son equivalentes sobre n, x, xs. Por ejemplo,
>>>
prop_listaCuadrada (NonNegative 3) 7 [0,3,5,2,4]
True>>>
prop_listaCuadrada (NonNegative 3) 7 [0..]
True
verifica_listaCuadrada :: IO () Source #
Comprueba la equivalencia de las definiciones de listaCuadrada.
>>>
verifica_listaCuadrada
+++ OK, passed 100 tests.