% Function PEEK-CHAR
Function PEEK-CHAR
peek-char &optional
peek-type input-stream eof-error-p eof-value recursive-p
=> char
peek-type - 文字か、tか、nil
input-stream - 入力ストリーム指定子。デフォルトは標準入力。
eof-error-p - generalized-boolean。デフォルトはtrue。
eof-value - オブジェクト。デフォルトはnil。
recursive-p - generalized-boolean。デフォルトはfalse。
char - 文字か、eof-value
peek-charは、input-streamから
実際に読み込むことをせず次の文字を取得し、
あとで読み込まれるように文字を残したままにします。
また、特定の文字が見つかるまで
input-streamの文字をスキップし
文字による介入を無視するときにも使用されます。
もしpeek-typeが指定されなかったか、あるいはnilのとき、
peek-charは
input-streamから文字を取り除くことをせずに
次に読み込まれる文字を返却します。
次回の入力は実行されたinput-streamのものであり、
その文字はまだそこに存在します。
もしpeek-typeがtのとき、
peek-charは空白文字をスキップし、
しかしコメントはスキップせずに、
次の文字のpeek-char処理を行います。
最後に調査された文字は、
その文字が開始のオブジェクトになるので、
input-streamから削除されません。
もしpeek-charが文字のとき、
peek-charは入力された文字に対して、
char=と同じものが見つかるまでスキップし、
その文字はinput-streamから削除されます。
もしファイルの終わりが発生し、 eof-error-pがfalseであるときは、 eof-valueが返却されます。
もしrecursive-pがtrueのとき、
この呼び出しはより上位レベルのreadによるものか、
Lispのリーダーによって使われる似たような関数から
埋め込まれたものであると見なされます。
input-streamがechoストリームであるとき、
文字はのぞき見だけが行われ、エコーはされません。
このような場合、peek-typeがnilではないとき、
peek-charによってのぞき見された文字は、
read-charによるものと同じように扱われるので、
unread-charで別段指定されない限りエコーされます。
(with-input-from-string (input-stream " 1 2 3 4 5")
(format t "~S ~S ~S"
(peek-char t input-stream)
(peek-char #\4 input-stream)
(peek-char nil input-stream)))
>> #\1 #\4 #\4
=> NIL
*readtable*,
*standard-input*,
*terminal-io*
eof-error-pがtrueでありファイルの終わりに到達したときは、
型end-of-fileのエラーが通知されます。
peek-typeが文字であり、ファイルの終わりに到達し、
eof-error-pがtrueのときは、
型end-of-fileのエラーが通知されます。
recursive-pがtrueであり、ファイルの終わりに到達したときは、
型end-of-fileのエラーが通知されます。
なし。
なし。