次: , 前: Compilation Errors, 上: Read and Print


18.1 読み取りと表示の概要

Lispオブジェクトの読み取りとは、 テキスト表現のLisp式を解析して対応するLispオブジェクトを生成することを 意味します。 これにより、プログラムはLispコードのファイルからLispへ取り込まれます。 テキストをオブジェクトの入力構文(read syntax)と呼びます。 たとえば、テキスト`(a . 5)'は、 caraでありcdrが数5であるコンスセルの入力構文です。

Lispオブジェクトの表示とは、 オブジェクトを表現するテキストを生成することを意味します。 つまり、オブジェクトをその表示表現 (see Printed Representation)に変換します。 上に述べたコンスセルを表示するとテキスト`(a . 5)'を生成します。

読み取りと表示は、多かれ少なかれ、逆操作です。 与えられたテキスト断片を読み取ることで得られたオブジェクトを表示すると、 しばしば、同じテキストを生成します。 オブジェクトを表示することによって得られたテキストを読み取ると、 通常、似たようなオブジェクトを生成します。 たとえば、シンボルfooを表示するとテキスト`foo'を生成し、 そのテキストを読み取るとシンボルfooが返されます。 要素がabであるリストを表示すると テキスト`(a b)'を生成し、 そのテキストを読み取ると 要素がabである(もとと同じではないが)リストを生成します。

しかし、これら2つの操作は厳密には逆操作ではありません。 3種類の例外があります。