Next: , Up: Read and Print   [Contents][Index]


20.1 読み取りとプリントの概念

Lispオブジェクトの読み取りとは、テキスト形式のLisp式をパース(parse: 解析)して、対応するLispオブジェクトを生成することを意味します。これはLLispプログラムがLispコードファイルからLispに取得される方法でもあります。わたしたちはそのテキストのことを、そのオブジェクトの入力構文(read syntax)と呼んでいます。たとえばテキスト‘(a . 5)’は、CARaCDRが数字の5であるようなコンスセルにたいする入力構文です。

Lispオブジェクトのプリントとは、あるオブジェクトをそのオブジェクトのプリント表現(printed representation)に変換することによって、そのオブジェクトを表すテキストを生成することを意味します(Printed Representationを参照)。上述のコンスセルをプリントするとテキスト‘(a . 5)’が生成されます。

読み取りとプリントは概ね逆の処理といえます。あるテキスト断片を読み取った結果として生成されたオブジェクトをプリントすると、多くの場合は同じテキストが生成され、あるオブジェクトをプリントした結果のテキストを読み取ると、通常は同じようなオブジェクトが生成されます。たとえばシンボルfooをプリントするとテキスト‘foo’が生成されて、そのテキストを読み取るとシンボルfooがリターンされます。要素がabのリストをプリントするとテキスト‘(a b)’が生成されて、そのテキストを読み取ると、(同じリストではないが)要素がabのリストが生成されます。

しかし、これら2つの処理は互いにまったく逆の処理というわけではありません。3つの例外があります: