cond (AutoLISP)

AutoLISP の多分岐条件関数としての機能を果たします。

サポートされているプラットフォーム: Windows および Mac OS

構文と要素

(cond [((test) (result ...)) ...])
test

タイプ: リスト

評価するテスト条件。

result

タイプ: リスト

テスト条件が成功した場合に実行される引数。

戻り値

タイプ: T または nil

サブリストの最後の式の値。サブリストの中に式が 1 つしかない(つまり result が存在しない)場合は、test 式の値を返します。引数が与えられていない場合、cond 関数は nil を返します。

注意

cond 関数は、引数として任意の数のリストを受け入れます。各リストの先頭の項目を評価し、それが nil 以外の値を返すまで、各リストの先頭項目の評価を続けます。次に、先頭項目の評価結果が nil 以外だったリストの 2 番目以降の式を評価します。

次の例では、cond 関数を使用して絶対値の計算を行っています。

(cond 
   ((minusp a) (- a)) 
   (t a)
)

変数 a に値 -10 が代入されていると、10 を返します。

次に示すように、cond 関数は多分岐型の関数として使用されます。通常は最後の(既定の)test 式に T を使用します。次に簡単な例を示します。変数 s にユーザが入力した文字列を与えると、cond 関数はその文字列をテストし、Yy なら 1 を、Nn なら 0(ゼロ)を、それ以外の場合は nil を返します。

(cond
   ((= s "Y") 1) 
   ((= s "y") 1) 
   ((= s "N") 0) 
   ((= s "n") 0) 
   (t nil)
)