Lisp の if 文

emacs で バージョン分岐をさせようとしたとき LISP の if 文について知らなかったのでメモ

(if 条件 真 偽)

となるが、

(if nil
  (a)
  (b)

この場合は b という結果になる*1。if文は単文しか使えない。複数文がある場合は progn を使う

(if hoge 
   (progn (hoge) (bar) )
   (progn (foo) (ahe) )
)

こんな感じ。
via.

*1:nil は偽を表す