2011-04-08

haskellのリスト内包表記で格子点列挙

haskellのリスト内包表記について勉強してるときにたまたまこの記事を見つけたので試しにやってみた。


http://d.hatena.ne.jp/odz/20070131/1170284561


main = mapM print (mesh [[1..10],[1..10],[1..10]])

mesh [] = [[]]
mesh (x:xs) = [ x':xs' | x' <- x, xs' <- (mesh xs) ]

パフォーマンスは調べてません。
もっといいやり方はありそうだけど、そこそこ直感的。。かな?
リスト内包表記って気持ち的にはSQL書くのに近い気がする。

0 件のコメント:

コメントを投稿

ZenBackWidget