あどけない話

インターネットに関する技術的な話など

Scheme

賢人鳥

分かった! 分かった! 分かった! 自己言及 ものまね鳥(M)は、自己言及する鳥なんだ!Haskell では、型推論がジャマして、ものまね鳥を実現できない。 -- Mx = xx m x = x x -- エラーになる ヒバリ(L)も実現できない! -- Lxy = x(yy) l x y = x (y y) -- …

HaskellでScheme

ついに、Write Yourself a Scheme in 48 Hoursをやりました。 分ったこと 以下のことが、なんとなく分ったり、少なくともどう使うのかを体験できました。 エラー処理 正常系の値と異常系の値を包含する型を作って、Scheme の関数はそれを返すようにする モナ…

The Little Schemer

最近、Scheme がちょっとした流行になっているようです。Scheme を勉強しようと思っている人に、僕が声を大にして薦めたい本は、「The Little Schemer」です。The Little Schemer (The MIT Press)作者: Daniel P. Friedman,Matthias Felleisen出版社/メーカ…

Scheme でλ計算(2)

昨日の続き。今日はチャーチ数です。 ZERO と ONE ZERO と ONE の定義は簡単です。 ;; 0 := λf x. x (define ZERO (lambda (f x) x)) ;; 1 := λf x. f x (define ONE (lambda (f x) (f x))) SUCC SUCC の定義も、昨日の CONS が分れば、同じようにできます。…

Scheme でλ計算

Wikipedia のラムダ計算にある例を Scheme で実行して理解してみます。 TRUE と FALSE TRUE と FALSE は簡単です。 ;; TRUE := λx y. x (define TRUE (lambda (x y) x)) ;; FALSE := λx y. y (define FALSE (lambda (x y) y)) AND、OR、NOT 難しいのは、本体…