2007-06-17から1日間の記事一覧
[[1,2],[1,3],[2,1],[2,3],[3,1],[3,2]]なるほど簡単だ.追記: == を使ってるから Eq に属してないといけないんだよね,と話すとI井君がサクっと改良してくれた. 要するに n 番目の要素と,それを取り除いたリストをタプルで持っておけばいいわけです. re…
順列をリストモナドでどう書くのだろう,と,ふと思いたち書いてみた. remove _ [] = [] remove x (y:ys) = if x == y then ys else y : (remove x ys)perm _ [] = [[]] perm 1 l = do x <- l return [x] perm n l = do x <- l xs <- perm (n - 1) (remove …