ifは1つのフォームしか置けないので、prognと併用することで
複数のフォームを置けるが、
if+prognよりも、condを使ったほうがスマート。
(cond (条件式 真フォーム1 真フォーム2 ..) (t 偽フォーム1 偽フォーム2 ..)) 返り値は、最後に評価したフォーム
;;ifとprognをcondに置き変えるとインデントがきれいになる (let (a b) (if (= 1 1) (progn (setq a 2) (setq b 3)) (setq a 10) (setq b 20)) (list a b)) ; => (2 3) (let (a b) (cond ((= 1 1) (setq a 2) (setq b 3)) (t (setq a 10) (setq b 20))) (list a b)) ; => (2 3) ;;; ネストしたif式をcondに置き換える (if (zerop (% 10 4)) "10は4の倍数" (if (zerop (% 10 2)) "10は偶数" "10は奇数")) ; => "10は偶数" (cond ((zerop (% 10 4)) "10は4の倍数") ((zerop (% 10 2)) "10は偶数") (t "10は奇数")) ; => "10は偶数"
condは最初に真になった部分のフォームを評価する
P61
- 作者: るびきち
- 出版社/メーカー: 技術評論社
- 発売日: 2011/11/26
- メディア: 単行本(ソフトカバー)
- 購入: 5人 クリック: 220回
- この商品を含むブログを見る