read-lineの使い方 – Emacs-Slimeでハングアップした (Common-Lisp : Ubuntu22.04)
まだ、詳細がわからないが、とりあえずメモしておく。
以下は、参考サイトに載っていた例。
1つめの値: 読み取られる行。文字列としてあらわされる。改行を除く。
2つめの値: 改行で終了されている場合は、NIL。ファイルの終わりなら、T。
CL-USER> (setq a "line 1
line2")
"line 1
line2"
CL-USER> (read-line (setq input-stream (make-string-input-stream a)))
"line 1"
NIL
CL-USER> (read-line input-stream)
" line2"
T
CL-USER> (read-line input-stream nil nil)
NIL
T
注意!!!
Emacsの SLIME で、(read-line) を実行すると、ハングアップする。
1文字なら入力できるが、2文字めを入力したとたん、ハンブアップする。
どうやら、SWANKサーバーとの通信がうまくいかないっぽい。
とりあえず、Emacsを使わずにターミナルから
$ clisp
と入力して、
> (read-line)
と実行するしかない。
参考
Function READ-LINE
( https://www.lispworks.com/documentation/lw60/CLHS/Body/f_rd_lin.htm )
CLISPからSBCLに変更したら、ハングアップしなくなった
CLISPからSBCLに乗り換える (Ubuntu22.04) — My開発メモ に書いたように、
CLISPとEmacsとの相性の問題じゃないか?と思って、SBCLに乗り換えたら、
うまく動いた。
カテゴリー: Lisp, memo
タグ: clisp, common-lisp, Lisp, read-line, 標準入力
カウント: 124