Common Lisp勉強中・・・ (7)

本で言う第8章, 比較と条件分岐.
本は, 「やさしいLisp入門」.



今回はそんなに面白くない.
とりあえず, 構文だけまとめておく.

;; if文
(if 条件式
  真なら実行
  偽なら実行)

;; case文
;; 「式」の結果とぞれぞれ「要素のリスト」の値がマッチするもののみが実行される.
;; 値の比較には, eqlが使われる.
;; よって, 「1/10」と「0.1」や文字列同士の比較には使えない.
(case(要素のリスト1 値1 ...)
  (要素のリスト2 値2 ...)
  (要素のリスト3 値3 ...)
  ...
  (otherwise 値N ...))

;; ecase文
;; ほぼcaseと同じ.
;; 列挙したリストの中に式の値に対応するものが無いとエラーを発生させる.
(ecase(要素のリスト1 値1 ...)
  (要素のリスト2 値2 ...)
  (要素のリスト3 値3 ...)
  ...
  (要素のリストN 値N ...))

;; typecase文
;;式が属するデータの型によって, 場合分けを行う.
(typecase(型リスト1 値1 ...)
  (型のリスト2 値2 ...)
  (型のリスト3 値3 ...)
  ...
  (otherwise 値N ...))

;; cond文
;; 先頭から順番に条件式を処理をしていく.
;; その返戻値が真となる最初の条件に対応する実行式のみを実行.
(cond
  (条件1 実行式1 ...)
  (条件2 実行式2 ...)
  ...
  (t 実行式N ...))