SICP 読み (124) 3.5.1 ストリームは遅延リスト

脚注 56 (p.189) に微妙な記述がある。何だそりゃ、と言いつつ gosh で確認。

gosh> delay
#<syntax delay>
gosh> force
#<subr force>
gosh> 

たしかに delay は syntax で force は subr になっているんですが、特殊形式って何だったっけか。と言いつつ以下に備忘録をメモ。

特殊形式

SICP によると p.6 に説明あり。ここでは

gosh> (define x 3)
x
gosh>

が例に挙げられている。確かに define は手続きではないな。gosh で確認。

gosh> define
#<syntax define>
gosh>

うーん。cons-stream も delay も特殊形式じゃないといかんのだけれど、その定義の方法が SICP には書いてない。で、仕方がないので google 先生にお伺いしてみると、define-syntax なんてソレが (以下略
家に戻ったら_amazon:プログラミング言語scheme_があったりするんでそっち調べてみるか。ただ、この後出てくる問題 3.50 から 3.52 までは基本的に机上の問題なんで、とっとと検討せい、って世界なのは分かってるんだけど ....