list処理
-- [x,y] は x:y:[] の簡略表記 lispでいうと (x y) と (x . (y . ()))の関係 cons x y = x:y
reduceをconsを利用しようとするとエラーが出る。
reduce f x [] = x reduce f x (cons a l) = f a (reduce f x l)
うーん、(cons a l) を (a:l) とすると同じなんだけどな。
なぜだろう。
予想としては
data List a = Car a | Cdr (List a)
みたいな形でList型を作る必要があるのでは無いかと思う。
いつも基礎からはまるなぁ…まあ、性分だからしょうがないか。
本日終了。