Next: Input Streams, Previous: Compilation Errors, Up: Read and Print
Lispオブジェクトの読み取りとは、
テキスト表現のLisp式を解析して対応するLispオブジェクトを生成することを
意味します。
これにより、プログラムはLispコードのファイルからLispへ取り込まれます。
テキストをオブジェクトの入力構文(read syntax)と呼びます。
たとえば、テキスト‘(a . 5)’は、
carがa
でありcdrが数5であるコンスセルの入力構文です。
Lispオブジェクトの表示とは、 オブジェクトを表現するテキストを生成することを意味します。 つまり、オブジェクトをその表示表現 (see Printed Representation)に変換します。 上に述べたコンスセルを表示するとテキスト‘(a . 5)’を生成します。
読み取りと表示は、多かれ少なかれ、逆操作です。
与えられたテキスト断片を読み取ることで得られたオブジェクトを表示すると、
しばしば、同じテキストを生成します。
オブジェクトを表示することによって得られたテキストを読み取ると、
通常、似たようなオブジェクトを生成します。
たとえば、シンボルfoo
を表示するとテキスト‘foo’を生成し、
そのテキストを読み取るとシンボルfoo
が返されます。
要素がa
とb
であるリストを表示すると
テキスト‘(a b)’を生成し、
そのテキストを読み取ると
要素がa
とb
である(もとと同じではないが)リストを生成します。
しかし、これら2つの操作は厳密には逆操作ではありません。 3種類の例外があります。