Macro COND

UP


Macro COND

Macro COND

構文

cond {clause}* => result*

clause ::= (test-form form*) 

引数と戻り値

test-form - フォーム
form - 暗黙のprogn
result - test-formtrueを返却した最初のclauseにあるformの値か、 formがないclausetest-formの第一返却値か、 あるいはtest-formtrueを返却しなかったときはnil

定義

condtest-formに依存したformの実行を行います。

test-formは、それがtrueと評価されるものが見つかるまで、 引数のリストを順番に一度だけ評価されます。

もしclauseformがないとき、test-formの第一返却値が condフォームの返却値になります。 そうでなければ、test-formに関連付けられたformが 左から右の順番に暗黙のprognとして評価され、 最後のformの返却値がcondフォームの返却値になります。

いったんtest-formtrueを返却したら、 他のtest-formは評価されません。 もしどのtest-formtrueを返却しないときは、 nilが返却されます。

例文

(defun select-options ()
  (cond ((= a 1) (setq a 2))
        ((= a 2) (setq a 3))
        ((and (= a 3) (floor a 2)))
        (t (floor a 3)))) =>  SELECT-OPTIONS
(setq a 1) =>  1
(select-options) =>  2
a =>  2
(select-options) =>  3
a =>  3
(select-options) =>  1
(setq a 5) =>  5
(select-options) =>  1, 2

副作用

なし。

影響

なし。

例外

なし。

参考

if, case

備考

なし。


TOP, Github