Kamuycikap - SentenceDataBase

日々の勉強の記録を気分で書き綴るブログ

Emacs Lisp: 関数について 整数の比較

整数の比較

Emacs Lispのメモ

;; 引数である整数がマイナスかどうかを評価
(defun Minusp (n)
  (cond
   ((< n 0) t)
   (t nil)))

(Minusp -10)

condを使う。
condは全ての条件を上から順番に評価する。
評価の結果、条件がtであれば、条件の中の処理を全て処理して抜ける。

;; ===閏年の計算====
;; 4で割り切れると閏年
;; ただし、100で割り切れると通常の年
;; ただし、さらに400で割り切れると閏年
;; nil -> 閏年じゃない
;; t -> 閏年!!
(defun leap (n)
  (cond
   ((/= (% n 4) 0) nil)                 ; 引数が4で割り切れなかったらnil
   ((/= (% n 100) 0) t)                 ; 引数が4で割り切れる数字であり、さらに100で割り切れたら閏年
   ((= (% n 400) 0) t)                  ; 引数が4で割り切れる数字で、100で割り切れなくても、400で割り切れたら閏年
   (t nil)))


(leap 2012)