結城浩のSICP日記 RSSフィード

2006-05-01

[]構文定義 構文定義 - 結城浩のSICP日記 を含むブックマーク

R5RSの「構文定義」は後で読みます。

[]マクロ マクロ - 結城浩のSICP日記 を含むブックマーク

R5RSの「マクロ」は後で読みます。

[]delay delay - 結城浩のSICP日記 を含むブックマーク

R5RSの「遅延評価」を読んでいます。

delayが来ました。プロミスを返します。

(define x (delay 123))
;=> x

x
;=> #<promise 00BF1750>

(force x)
;=> 123

詳しい遅延評価は後でまたじっくり。

ruirui2006/05/01 17:18> 疑問:R5RSに「()は文法上有効な式ではない」と書かれている意味がよくわからない。
R5RSで規定されていない範囲の動作や、エラーの場合の動作は、処理系の裁量にまかされています。()をreadしたときに、エラーをユーザに通知する代わりに、それなりに動作する(この場合は空リストを返す)のも問題ない動作だということになります。Gaucheは()をreadしたときに空リストを返します。
処理系の間での移植性を高めるために、'()と書いておくほうがいいとは思いますが。