Function PEEK-CHAR

UP


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-charinput-streamから文字を取り除くことをせずに 次に読み込まれる文字を返却します。 次回の入力は実行されたinput-streamのものであり、 その文字はまだそこに存在します。 もしpeek-typetのとき、 peek-charは空白文字をスキップし、 しかしコメントはスキップせずに、 次の文字のpeek-char処理を行います。 最後に調査された文字は、 その文字が開始のオブジェクトになるので、 input-streamから削除されません。 もしpeek-charが文字のとき、 peek-charは入力された文字に対して、 char=と同じものが見つかるまでスキップし、 その文字はinput-streamから削除されます。

もしファイルの終わりが発生し、 eof-error-pfalseであるときは、 eof-valueが返却されます。

もしrecursive-ptrueのとき、 この呼び出しはより上位レベルのreadによるものか、 Lispのリーダーによって使われる似たような関数から 埋め込まれたものであると見なされます。

input-streamechoストリームであるとき、 文字はのぞき見だけが行われ、エコーはされません。 このような場合、peek-typenilではないとき、 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-ptrueでありファイルの終わりに到達したときは、 型end-of-fileのエラーが通知されます。

peek-typeが文字であり、ファイルの終わりに到達し、 eof-error-ptrueのときは、 型end-of-fileのエラーが通知されます。

recursive-ptrueであり、ファイルの終わりに到達したときは、 型end-of-fileのエラーが通知されます。

参考

なし。

備考

なし。


TOP, Github