Power Set #2
Friday, August 22nd, 2008My power set solution is defined.
I just found there is challenge question about get the power set in “order” without using sort.
For example:
subsets [] = [[]]
subsets [1,2,3] = [[],[1],[2],[3],[1,2],[1,3],[2,3],[1,2,3]]
My solution for this challenge is simply reuse my combination function.
combination :: [a] -> Int -> [[a]]
combination _ 0 = [[]]
combination [] _ = []
combination (x:xs) n = map (x:) (combination xs (n-1)) ++ combination xs n
subset :: [a] -> [[a]]
subset xs = concat [combination xs k | k <- [0..n]] where n = length xs