4 ms·
Here's a recursive definition which is less cool but less 'magic' powerset :: [a] -> [[a]] powerset [] = [[]] powerset (x:xs) = yss +
by platz 13y ago
Here's a recursive definition which is less cool but less
'magic'
powerset :: [a] -> [[a]]
powerset [] = [[]]
powerset (x:xs) = yss ++ map (x:) yss
where yss = powerset xs
> powerset [1,2,3]
[[],[3],[2],[2,3],[1],[1,3],[1,2],[1,2,3]]