Listas decrecientes
Definir la función
listasDecrecientesDesde :: Int -> [[Int]]
tal que (listasDecrecientesDesde n) es la lista de las sucesiones estrictamente decrecientes cuyo primer elemento es n. Por ejemplo,
λ> listasDecrecientesDesde 2 [[2],[2,1],[2,1,0],[2,0]] λ> listasDecrecientesDesde 3 [[3],[3,2],[3,2,1],[3,2,1,0],[3,2,0],[3,1],[3,1,0],[3,0]]
Soluciones
listasDecrecientesDesde :: Int -> [[Int]] listasDecrecientesDesde 0 = [[0]] listasDecrecientesDesde n = [n] : [n:ys | m <- [n-1,n-2..0], ys <- listasDecrecientesDesde m]