2007-12-14から1日間の記事一覧

haskellでpermutationを作ってみる

正確には順列じゃなくて nPmのn=mのときだけ。 import List main=print $ permutation [1..3] permutation (a:[]) = [[a]] permutation a = concat $ zipWith (\x y->map (x:) (permutation (delete x y))) a $ repeat a結果 *Main> main [[1,2,3],[1,3,2],[…

GHCiやめた記念:qsortをmainでやってみる

import List main=print a a=qsort [3,2,1,4,1,2] qsort [] = [] --qsort (x:xs) = qsort [y|y<-xs,y<x] ++ [x] ++ qsort [y|y<-xs,y>=x] qsort (x:xs) = qsort l ++ [x] ++ qsort r where (l,r)=partition (< x) xs結果 *Main> main [1,1,2,2,3,4] *Main> emacs入れて良かった。</x]>

なんかよくわからんからあとで復習する。

n番目の要素とそれ以外のリストからなるタプルを生成する。 Prelude> let (l,a:r)=splitAt 1 [1..4] in (a,l++r) (2,[1,3,4]) Prelude> let (l,a:r)=splitAt 2 [1..4] in (a,l++r) (3,[1,2,4]) Prelude> let (l,a:r)=splitAt 3 [1..4] in (a,l++r) (4,[1,2,3…