出力ストリームを取る関数のアーギュメントは以下のオブジェクトのいずれかです。
buffer
buffer 中の (文字を挿入すると先に進められる)ポイントの位置に (出力)文 字を挿入します。
marker
(marker がその中にある) buffer 中の (文字を挿入すると先に進められる) マーカーポジションに (出力)文字を挿入します。
function
function は、出力文字をアーギュメントに持って呼ばれます。 (出力すべき 文字があれば)必要な回数呼ばれます。この関数はその文字で何をしようとか まいません。
t
コード t をストリームとして用いることは、出力文字をミニバッファに表示 することを意味します。
nil
nil をストリームとして用いることは、 standard-output の値を(代りに)用 いることを意味します (この値は nil でない出力ストリームでなくてはいけ ません)。
(簡単な例を最初に与えること!!)
以下の例において、関数 eat-output は与えられた(各々の)文字を取り、それをリスト last-output に cons します。このリストはその(全ての)文字を逆順に持ちます。
(setq last-output-nil) => nil (defun eat-output (c) (setq last-output (cons c last-output))) => eat-output (print "This is the output" 'eat-output) => "This is the output" last-output => (10 34 116 117 112 116 117 111 32 101 104 116 32 115 105 32 115 105 104 84 34 10) (concat (nreverse last-output)) => " \"This is the output\" "
次の例において、バッファ foo 中のポイントは t と h の間に位置付けられていま す。ここに出力を挿入します。この後、このポイントは(同じ) h の直前に位置付けら れています。
---------- Buffer: foo ---------- This is the contents of foo. ---------- Buffer: foo ----------
(print "This is the output" (get-buffer "foo")) => "This is the output"
---------- Buffer: foo ---------- This is t "This is the output" he contents of foo. ---------- Buffer: foo ----------
次の例において、マーカーはバッファ foo 中の、t と h の間に位置付けられていま す。この後、このマーカーは先に進められ、(同じ) h の直前に位置付けられていま す。
---------- Buffer: foo ---------- "This is the output" ---------- Buffer: foo ----------
(print "More ourput for foo." marker) => "More ourput for foo."
---------- Buffer: foo ---------- "This is t "More output for foo." he output" ---------- Buffer: foo ----------
次の例において、出力はエコーエリアに置かれます。
(print "Echo Area output" t) => "Echo Area output" ---------- Buffer: Echo Area ---------- "Echo Area output" ---------- Buffer: Echo Area ----------