2009-09-27 [長年日記]
λ. CPLに関数定義を導入
CPLのHaskell実装に久しぶりに手を入れて、関数定義を導入した。 これで、
let uncurry(f) = eval . prod(f, I)
とか
let primrec(f,g) = pi2.pr(pair(0,f), pair(s.pi1, g)) let fact = primrec(s.0, mult.prod(s,I))
とか、書けるようになった。
あとはIOをどうにかして導入すれば、変態言語として使えるようになるかな。 しかし、久しぶりにソースをいじると、昔の自分のコードがひどすぎて、一から書き直したくなるなぁ。