Next: Input Streams, Up: Read and Print [Contents][Index]
Lispオブジェクトの読み取りとは、テキスト形式のLisp式をパース(parse:
構文解析)して、対応するLispオブジェクトを生成することを意味します。これは、LLispプログラムがLispコードファイルからLispに取得される方法でもあります。わたしたちは、そのテキストをそのオブジェクトの入力構文(read
syntax)と呼んでいます。たとえばテキスト‘(a .
5)’は、CARがa
でCDRが数字の5であるようなコンスセルにたいする入力構文です。
Lispオブジェクトのプリントとは、あるオブジェクトをそのオブジェクトのプリント表現(printed representation) (Printed Representationを参照)に変換することにより、そのオブジェクトを表すテキストを生成することを意味します。上述のコンスセルをプリントすると、テキスト‘(a . 5)’が生成されます。
読み取りとプリントは、概ね逆の処理といえます。あるテキスト断片を読み取った結果生成されたオブジェクトをプリントすると、多くの場合は同じテキストが生成され、あるオブジェクトをプリントした結果のテキストを読み取ると、通常は同じようなオブジェクトが生成されます。たとえばシンボルfoo
をプリントするとテキスト‘foo’が生成され、そのテキストを読み取るとシンボルfoo
がリターンされます。要素がa
とb
のリストをプリントするとテキスト‘(a
b)’が生成され、そのテキストを読み取ると、(同じリストではないが)要素がa
とb
のリストが生成されます。
しかし、これら2つの処理は互いにまったく逆の処理というわけではありません。3つの例外があります: