% Macro OR
Macro OR
or
form* => result*
form - フォーム
result - 多値か、最後のformの実行した結果の第一返却値(下記参照)か、
nil
or
は、各formを左から右へひとつずつ評価します。
すべてのfromの評価は、formのどれかの評価が
true(それはnil
以外のなにか)を返却したときに停止します。
もし最後以外の各formの評価の第一返却値がtrueのときは、
or
は残りのformを評価することなく
即座にその値(しかし多値は追加しません)を返却します。
もし最後以外のすべてのformが第一返却値にfalseを返却したとき、
or
は最後のformの全ての多値を返却します。
formがないときは、nil
を返却します。
(or) => NIL
(setq temp0 nil temp1 10 temp2 20 temp3 30) => 30
(or temp0 temp1 (setq temp2 37)) => 10
temp2 => 20
(or (incf temp1) (incf temp2) (incf temp3)) => 11
temp1 => 11
temp2 => 20
temp3 => 30
(or (values) temp1) => 11
(or (values temp1 temp2) temp3) => 11
(or temp0 (values temp1 temp2)) => 11, 20
(or (values temp0 temp1) (values temp2 temp3)) => 20, 30
なし。
なし。
なし。
なし。