Hatena::ブログ(Diary)

みずぴー日記 Twitter

2010-02-02(火)

べき集合

| べき集合を含むブックマーク

30分プログラム、その730。べき集合をもとめる関数

前にべき集合を一行で求めるコードを見たことあるような気がするけど、思い出せなかったし、辿りつけなかった。ちぇー。

使い方

Prelude> powerSet [1..3]
[[1,2,3],[2,3],[1,3],[3],[1,2],[2],[1],[]]

ソースコード

powerSet:: [a] -> [[a]]

powerSet [] = [[]]
powerSet (x:xs) = concat [ [ (x : ys),  ys ] | ys <- powerSet xs ]

参考

BLUEPIXYBLUEPIXY 2010/02/03 15:14 "プログラミングHaskell"という本で、subsという部分リストを求める関数があるけど、それのことですかね。

トラックバック - http://d.hatena.ne.jp/mzp/20100202