R6RS:翻訳:Standard Libraries:12.2 Syntax objects

R6RS:翻訳:Standard Libraries:12.2 Syntax objects

12.2 構文オブジェクト

構文オブジェクトは、構造に加えて文脈情報を保持した Scheme のフォームを表現したものである。 文脈情報は展開器が静的スコープを保持するのに使ったり、処理系によってはソースコードとオブジェクトの対応関係を管理するのに使われたりする[6]。

R6RS:翻訳:Standard Libraries:12.1 Hygiene で述べた通り、構文オブジェクトはラップされていることがある。また、完全に、もしくは部分的にラップされていないこともある。すなわち、ラップされた構文オブジェクトやシンボルを葉として持つリストやベクタから成ることもある。より形式的に定義すれば、構文オブジェクトは以下のいずれかである。

「構文オブジェクト」と「ラップされた構文オブジェクト」の区別は重要である。 たとえば、変換器により起動されたとき、変換子(R6RS:翻訳:Standard Libraries:12.3 Transformers 節参照)はラップされた構文オブジェクトを受け取らなければならないが、任意の構文オブジェクト(ラップされていないものも含む)を返してもよい。

識別子を表す構文オブジェクトは常にラップされていて、他の型の値と区別される。識別子以外のラップされてた構文オブジェクトは他の型の値と区別されていてもよいし、されていなくてもよい。


Last modified : 2008/03/02 23:19:00 UTC