Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

condでif-elseif-elseなロジックをスッキリ書く

condでif-elseif-elseなロジックをスッキリ書き下す事が出来ます。
というか、lisp文化ではcondを使うのが一般的なようです。

第一引数に評価式、第二に実行内容,,,と書いて行きます。

(progn
  (setq i t)
  (cond ((stringp i)  'string)
	((integerp i) 'number)
	(t            'no-match))
)

みんな大好き再帰処理でも大活躍です

  (defun triangle-using-cond (number)
       (cond ((<= number 0) 0)
             ((= number 1) 1)
             ((> number 1)
              (+ number (triangle-using-cond (1- number))))))

(triangle-using-cond 100)
5050