Shammer's Philosophy

My private adversaria

Lispの入出力

LispのHelloWorldはこうなる。


(format t "HelloWorld.")


出力は、


HelloWorld
NIL


となる。・・・LispではHelloWorldなどいらないと思うが、NIL が返ってくるのか・・・
よくわからないが、きっとそういうものなんだろう。
主に、文字の出力は、入力待ちの際に相手にどのような情報がほしいかと伝えるために
使用する、という気がする。相手の名前を返す関数はこうなる。


(defun whatisyourname (question)
(format t "~A?" question)
(read)
)


次のように実行する。


(whatisyourname "What is your name")
What is your name?


この状態で、入力待ちになり、入力すると、その値を出力して終了。
なお、format の ~A は挿入位置を意味する。そのため、? の前に question として
指定された文章が表示されている。~% にすると、改行されるようだ。