等しい
AutoLISP関数 |
---|
(= item [item] ...) |
item:アトム、リスト |
引数を比較して、等しいかどうかを判断します。 |
戻り値:nil、またはnil 以外 |
AutoLISP関数 |
---|
(/= item [item] ...) |
item:アトム、リスト |
引数を比較して、等しくないかどうかを判断します。 |
戻り値:nil、またはnil 以外 |
= 関数は、隣りあう item 引数がすべてにおいて等しい場合は nil 以外を、等しくない場合はnil を返します。/= 関数は、隣りあう item 引数がすべてにおいて異なる場合は nil 以外を返します。まわりくどい言い方ですが、三つ以上の引数が与えられた場合、次のようなコードと同等になります。
(= i1 i2 i3) ⇒ (and (= i1 i2) (= i2 i3))
(/= i1 i2 i3) ⇒ (and (/= i1 i2) (/= i2 i3))
(/= i1 i2 i3) ⇒ (and (/= i1 i2) (/= i2 i3))
このことは、/= 関数の場合では直感と異なるので注意してください。
_$ (/= 1 0 0)
nil
_$ (/= 0 1 0)
T
_$ (/= 0 0 1)
nil
= 関数と /= 関数は数値の比較に使えるほか、文字列やシンボル名の比較にも使えます。
_$ (= 2.0 (+ 1.0 1.0)) ⏎
T
_$ (/= 2.0 (+ 1.0 1.0)) ⏎
nil
_$ (= "AutoCAD" (strcat "Auto" "CAD"))⏎
T
_$ (/= "AutoCAD" (strcat "Auto" "CAD"))⏎
nil
_$ (= 'AutoCAD (read "AUTOCAD"))
T
_$ (/= 'AutoCAD (read "AUTOCAD"))
nil
リストの場合は、次のように、比較の方法が eq 関数と等しい「同一性」の比較となります。
_$ (= '(1) '(1))⏎ ;別のリスト(内容は等しい)の比較
nil
_$ (setq a '(1)) ⏎
(1)
_$ (setq b a) ⏎
(1)
_$ (= a b) ⏎ ;同一のリストの比較
T
大きい・小さい
AutoLISP関数 |
---|
(< numstr [numstr] ...) |
numstr:整数、実数、または文字列 |
各引数がその右側の引数よりも数値的に小さい場合は T を返し、それ以外の場合は nil を返します。 |
戻り値:nil、またはnil 以外 |
AutoLISP関数 |
---|
(<= numstr [numstr] ...) |
numstr:整数、実数、または文字列 |
各引数がその右側の引数よりも数値的に小さいか等しい場合は T を返し、それ以外の場合は nil を返します。 |
戻り値:nil、またはnil 以外 |
AutoLISP関数 |
---|
(> numstr [numstr] ...) |
numstr:整数、実数、または文字列 |
各引数がその右側の引数よりも数値的に大きい場合は T を返し、それ以外の場合は nil を返します。 |
戻り値:nil、またはnil 以外 |
AutoLISP関数 |
---|
(>= numstr [numstr] ...) |
numstr:整数、実数、または文字列 |
各引数がその右側の引数よりも数値的に大きいか等しい場合は T を返し、それ以外の場合は nil を返します。 |
戻り値:nil、またはnil 以外 |
それぞれの一般的な使い方は以下のとおりとなります。
_$ (< 1 2)⏎
T
_$ (<= 1 1) ⏎
T
_$ (> 1 2) ⏎
nil
_$ (>= 1 1) ⏎
T
二つ以上の引数をとることができ、すべての順において関係が成り立つときに nil 以外を返します。
_$ (< 1 2 3 4) ⏎
T
_$ (< 1 2 4 3) ⏎
nil
_$ (<= 1 2 2 3) ⏎
T
_$ (<= 1 2 1 3) ⏎
nil
引数には文字列をとることもでき、その場合は、文字コードの大小で対応する文字が順に比較されます。
_$ (< "A" "B")⏎
T
_$ (< "Aa" "Ab")⏎
T
負・ゼロ
AutoLISP関数 |
---|
(minusp number) |
number:整数、または実数 |
数値が負かどうかを調べます。 |
戻り値:nil、またはnil 以外 |
minusp関数は、引数が0 以上ならばnil を返します。
_$ (minusp 1) ⏎
nil
_$ (minusp -1) ⏎
T
_$ (minusp 0) ⏎
nil
比較関数の < や > でも同じことができます。number 引数が数値以外の場合はエラーが発生します。
AutoLISP関数 |
---|
(zerop number) |
number:整数、または実数 |
数値がゼロかどうかを調べます。 |
戻り値:nil、またはnil 以外 |
zerop 関数は、引数がゼロ以外の場合はnil を返します。
_$ (zerop 0) ⏎
T
_$ (zerop 1) ⏎
nil
比較関数の=でも同じことができます。number 引数が数値以外の場合はエラーが発生します。
誤差
= 関数でも同様ですが、実数を扱っている際には計算誤差が生じ、理論的に 0.0 になる場合でも zerop 関数はわずかな誤差も許容せず、完全に 0.0 の場合のみ nil 以外を返しますので、配慮が必要です。equal 関数を使う必要があるか、常に注意してください。実数に対しては、zerop 関数を使うべきではありません。