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


18.1 Introduction to Reading and Printing

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つの例外があります: