Copyright | Exercitium (21-05-14) |
---|---|
License | GPL-3 |
Maintainer | JoseA.Alonso@gmail.com |
Safe Haskell | Safe |
Language | Haskell2010 |
Pares_adyacentes_iguales
Description
Definir la función
numeroParesAdyacentesIguales :: Eq a => [[a]] -> Int
tal que (numeroParesAdyacentesIguales xss) es el número de pares de elementos consecutivos (en la misma fila o columna) iguales de la matriz xss. Por ejemplo,
>>>
numeroParesAdyacentesIguales [[0,1],[0,2]]
1>>>
numeroParesAdyacentesIguales [[0,0],[1,2]]
1>>>
numeroParesAdyacentesIguales [[0,1],[0,0]]
2>>>
numeroParesAdyacentesIguales [[1,2],[1,4],[4,4]]
3>>>
numeroParesAdyacentesIguales ["ab","aa"]
2>>>
numeroParesAdyacentesIguales [[0,0,0],[0,0,0],[0,0,0]]
12>>>
numeroParesAdyacentesIguales [[0,0,0],[0,1,0],[0,0,0]]
8>>>
numeroParesAdyacentesIguales [[0,0,0,0],[0,0,0,0],[0,0,0,0::Int]]
17
- numeroParesAdyacentesIguales :: Eq a => [[a]] -> Int
- numeroParesAdyacentesIgualesFilas :: Eq a => [[a]] -> Int
- numeroParesAdyacentesIgualesFila :: Eq a => [a] -> Int
- numeroParesAdyacentesIgualesFilas2 :: Eq a => [[a]] -> Int
- numeroParesAdyacentesIgualesFilas3 :: Eq a => [[a]] -> Int
- prop_numeroParesAdyacentesIgualesFilas :: [[Int]] -> Bool
- numeroParesAdyacentesIguales2 :: Eq a => [[a]] -> Int
- numeroParesAdyacentesIguales3 :: Eq a => [[a]] -> Int
- numeroParesAdyacentesIguales4 :: Eq a => [[a]] -> Int
- newtype Matriz = M [[Int]]
- matriz :: Gen Matriz
- listaAmatriz :: Int -> [a] -> [[a]]
- prop_numeroParesAdyacentesIguales :: Matriz -> Bool
- verifica_numeroParesAdyacentesIguales :: IO ()
Documentation
numeroParesAdyacentesIguales :: Eq a => [[a]] -> Int Source #
1ª definición (Por comprensión).
numeroParesAdyacentesIgualesFilas :: Eq a => [[a]] -> Int Source #
(numeroParesAdyacentesIgualesFilas xss) es el número de pares de elementos consecutivos (en la misma fila) iguales de la matriz xss. Por ejemplo,
>>>
numeroParesAdyacentesIgualesFilas [[0,0,1,0],[0,1,1,0],[0,1,0,1]]
2>>>
numeroParesAdyacentesIgualesFilas ["0010","0110","0101"]
2
numeroParesAdyacentesIgualesFila :: Eq a => [a] -> Int Source #
(numeroParesAdyacentesIgualesFila xs) es el número de pares de elementos consecutivos de la lista xs. Por ejemplo,
>>>
numeroParesAdyacentesIgualesFila "0010"
1>>>
numeroParesAdyacentesIgualesFila "0110"
1>>>
numeroParesAdyacentesIgualesFila "0101"
0
numeroParesAdyacentesIgualesFilas2 :: Eq a => [[a]] -> Int Source #
2ª definición de numeroParesAdyacentesIgualesFilas
(con map
).
numeroParesAdyacentesIgualesFilas3 :: Eq a => [[a]] -> Int Source #
3ª definición de numeroParesAdyacentesIgualesFilas
(sin argumentos).
prop_numeroParesAdyacentesIgualesFilas :: [[Int]] -> Bool Source #
Comprobación de la equivalencia de las definiciones de numeroParesAdyacentesIgualesFilas.
>>>
quickCheck prop_numeroParesAdyacentesIgualesFilas
+++ OK, passed 100 tests.
numeroParesAdyacentesIguales2 :: Eq a => [[a]] -> Int Source #
2ª definición de numeroParesAdyacentesIguales
(Por composición).
numeroParesAdyacentesIguales3 :: Eq a => [[a]] -> Int Source #
3ª definición de numeroParesAdyacentesIguales
(con matrices)
numeroParesAdyacentesIguales4 :: Eq a => [[a]] -> Int Source #
4ª definición de numeroParesAdyacentesIguales
(sin argumentos)
matriz es un generador de matrices. Por ejemplo,
> sample matriz M [[0,0]] M [[1,-2,-2],[-2,2,0],[2,-1,-2],[-2,0,-2]] M [[3,-4,0,0,2],[2,2,0,-2,2],[-1,-4,2,-3,0],[0,4,-1,-2,-3],[-3,-4,0,-4,-2]] M [[1,3],[2,-3],[0,3],[-3,2]] M [[-3,-3,-4,2,-6,0],[5,-6,3,-2,2,-8],[-6,8,5,1,0,-7],[7,3,7,-8,-3,-2]] M [[-9,7,0]] M [[8,-1,11,8,-13,9],[12,13,12,1,0,-9],[3,-4,7,-1,5,-2]] M [[-3,16,-9,-14,15,-6],[7,-14,8,-10,7,2]]
listaAmatriz :: Int -> [a] -> [[a]] Source #
(listaAmatriz m xs) es la matriz con m columnas cuyos elementos son los de xs. Por ejemplo,
>>>
listaAmatriz 3 [2,1,5,4,7,9]
[[2,1,5],[4,7,9]]>>>
listaAmatriz 2 [2,1,5,4,7,9]
[[2,1],[5,4],[7,9]]
prop_numeroParesAdyacentesIguales :: Matriz -> Bool Source #
(prop_numeroParesAdyacentesIguales (M xss)) se verifica si las definiciones de numeroParesAdyacentesIguales son equivalentes sobre xss. Por ejemplo,
>>>
:{
all prop_numeroParesAdyacentesIguales [M [[0,1],[0,2]], M [[0,0],[1,2]], M [[0,1],[0,0]], M [[1,2],[1,4],[4,4]], M [[0,0,0],[0,0,0],[0,0,0]], M [[0,0,0],[0,1,0],[0,0,0]], M [[0,0,0,0],[0,0,0,0],[0,0,0,0]]] :} True
verifica_numeroParesAdyacentesIguales :: IO () Source #
Comprueba la equivalencia de todas las definiciones de numeroParesAdyacentesIguales.
>>>
verifica_numeroParesAdyacentesIguales
+++ OK, passed 100 tests.