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

2006-05-01

[]()は有効な式? ()は有効な式? - 結城浩のSICP日記 を含むブックマーク

疑問:R5RSに「()は文法上有効な式ではない」と書かれている意味がよくわからない。()を評価してもエラーにならないし。

追記:ruiさんからコメントをいただきました。「Gaucheの場合は()をreadしたときに空リストを返す」ということで、処理系依存の振る舞いのようですね。後で他の処理系を試してみようかと思います。

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