Listas decrecientes
Definir la función
1 |
listasDecrecientesDesde :: Int -> [[Int]] |
tal que (listasDecrecientesDesde n) es la lista de las sucesiones estrictamente decrecientes cuyo primer elemento es n. Por ejemplo,
1 2 3 4 |
ghci> listasDecrecientesDesde 2 [[2],[2,1],[2,1,0],[2,0]] ghci> listasDecrecientesDesde 3 [[3],[3,2],[3,2,1],[3,2,1,0],[3,2,0],[3,1],[3,1,0],[3,0]] |
Soluciones
1 2 3 4 5 6 7 8 9 10 11 |
-- 1ª solución listasDecrecientesDesde :: Int -> [[Int]] listasDecrecientesDesde 0 = [[0]] listasDecrecientesDesde n = [n] : [n:ys | m <- [n-1,n-2..0], ys <- listasDecrecientesDesde m] -- 2ª solución listasDecrecientesDesde2 :: Int -> [[Int]] listasDecrecientesDesde2 0 = [[0]] listasDecrecientesDesde2 n = [n] : [n:xs | m <- [0..n-1], xs <- listasDecrecientesDesde2 m] |
Pensamiento
Viejo como el mundo es
-dijo un doctor-, olvidado,
por sabido, y enterrado
cuál la momia de Ramsés.Mas el doctor no sabía
que hoy es siempre todavía.Antonio Machado
3 Comentarios