Так просто. Я хочу сгенерировать все подсписки списка, используя их понимание.
то есть: getSublist [1,2,3] равен [[1], [2], [3], [1,2], [1,3], [2, 3], [1,2, 3]]
Спасибо
Это уже реализовано как Data.List.subsequences, но если вы хотите определить его самостоятельно (в целях обучения), вы можете сделать это следующим образом:
Data.List.subsequences
Вы не можете сделать это только со списком, но с некоторой рекурсией это выглядит так:
sublists [] = [[]] sublists (x:xs) = [x:sublist | sublist <- sublists xs] ++ sublists xs
Чтение: единственным подсписком пустого списка является пустой список. Подсписки x:xs (то есть список с заголовком x и хвостом xs) - это все подсписки xs, а также каждый из подсписков xs с добавлением x к ним. .
x:xs
x
xs