Home > Archives > 2005年09月17日

2005年09月17日

順列を内包表記で in Haskell

書くとこうなる

perm [] = []
perm [a] = [[a]]
perm (x:xs) = [ take i y ++ (x:drop i y) | y <- perm xs, i <- [1..length xs]]

ちなみに,y と i の生成順を逆にすると遅くなる.内側が先に確定して外側に行くので.

Home > Archives > 2005年09月17日

Search
Feeds

Page Top