決戦は海の上でなの
zickです。試験が終わって一息ついたというところです。
どうやら……もう駄目みたいです(笑)
今日はNScLisperのletrecを作りました。
letrecといえば『内部定義と同じである』とよく聞きますが、
SCIPにて、内部定義に関して
;;;たしかこんな感じのソースだったはず…… (define y 4) (let ((a 0)) (define x y) (define y 3) (+ x y))
このような場合、結果は7ではなく、エラーにするか、6にすべきであるとありましたが、
letrecの場合どうなるんだろう……と思い、R5RSを読んで見たところ、エラーにすべきとのこと。
ついでに内部定義の箇所を読んだら、上の例のような内部定義はエラーにすべきとありました。
SCIPの内容って(古いせいか)微妙に今のSchemeの仕様と違うことが書いてるからややこしい……
とはいえ、どちらも無視して、逐次束縛していって、上記の式は7になるようにしましたが(笑)