| 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.