Macro OR

UP


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

副作用

なし。

影響

なし。

例外

なし。

参考

and, some, unless

備考

なし。


TOP, Github