format関数が使われることが多いです。 : format関数のページ
第一引数に t を指定することで標準出力へ書き出します。
(format t "Hello World!") ;-> Hello World! ;=> NIL
また、シンプルな出力関数print, princ, prin1 は標準出力へ文字列を出力します。
print は出力に先立って改行を出力する点に注意が必要です。
(print "Hello World!") ;-> ; "Hello World!" ;=> "Hello World!" (prin1 "Hello World!") ;-> "Hello World!" ;=> "Hello World!" (princ "Hello World!") ;-> Hello World! ;=> "Hello World!"
read, read-char, read-lineを標準入力の取得に利用できます。
標準入力
Hello World !
実行結果
(read) ;=> "Hello World!" (read-char) ;=> #\H (read-line) ;=> "Hello World!"
また、数値を標準入力から与えた場合、 readは入力のストリームから一度につき一式のlispのデータを読み込みます。 read-char, read-lineは入力を文字・文字列として読み込みます。
標準入力
100
実行結果
(read) ;=> 100 (read-char) ;=> #\1 (read-line) ;=> "100"
実行方法の例 : Windows, PowerShell + SBCL で read-line 関数を実行する場合
PS> echo "Hello World!`n1" | sbcl --eval "(progn (print (read-line)) (quit))"
どのような動作をするかは実行方法(REPL上での動作か、スクリプト動作か、など)や 実行環境(CLISP, ccl, sbcl,,)により異なりますので、使用する際には注意が必要です。
Common Lisp では、標準入力は*standard-input* というストリームの一種です そのため、このページに掲載していないストリーム読み込み用関数も 標準入力の読み込みに使用することができます。。 また、これらの関数は標準入力以外のストリームを対象とした読み込みが可能です。
出力
入力
標準入出力