haskell - suma - Sublistas de una lista usando la lista de comprensión
promedio de una lista en haskell (1)
Así de simple. Quiero generar todas las sublistas de una lista usando la lista de comprensión.
es decir: getSublist [1,2,3] es [[1], [2], [3], [1,2], [1,3], [2, 3], [1,2,3]]
Gracias
Esto ya está implementado como Data.List.subsequences
, pero si quiere definirlo usted mismo (para fines de aprendizaje), puede hacerlo así:
No puedes hacerlo solo con listas de comprensión, pero con cierta recurrencia se ve así:
sublists [] = [[]]
sublists (x:xs) = [x:sublist | sublist <- sublists xs] ++ sublists xs
Lectura: la única sublista de la lista vacía es la lista vacía. Las sublistas de x:xs
(es decir, la lista con la cabeza x
la cola xs
) son todas las sublistas de xs
, así como también cada una de las sublistas de xs
con x
de ellas.