天天看點

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]]
--

           

繼續閱讀