2006-04-10から1日間の記事一覧

list処理

-- [x,y] は x:y:[] の簡略表記 lispでいうと (x y) と (x . (y . ()))の関係 cons x y = x:yreduceをconsを利用しようとするとエラーが出る。 reduce f x [] = x reduce f x (cons a l) = f a (reduce f x l)うーん、(cons a l) を (a:l) とすると同じなん…

reduceを作ってみる

hugsをapt-getしてみた。 car (a:d) = a cdr (a:d) = d cadr (a:d) = car d add x y = x + y reduce f x [] = x reduce f x (a:d) = f a (reduce f x d) sum = reduce add 0 multiply = reduce (\ x y -> x * y) 1 a = map (+1) b = map (+2) c = (a . b)