天天看点

haskell-幂集合实现

-- power 列出某一个数组的所有组合,包含空 冪集合
power :: [a] -> [[a]]
power [] = [[]]
power (x : xs) =  power xs ++ [ (x : ys) | ys <-  power xs]

-- 解题思路
-- power [] = [[]]
-- power [1] = [[] [1]]
-- power [1,2] = [[], [1], [2], [1,2]]
-- power [1,2,3] = [[], [1], [2], [3], [1,2], [1,3], [2,3], [1,2,3]]

-- 执行结果
-- >>> power [1,2,3]
-- [[],[3],[2],[2,3],[1],[1,3],[1,2],[1,2,3]]
--

           

继续阅读