「Equal」の版間の差分

提供:GizmoLabs - だいたい CAD LISP なサイト
(ページの作成: ; 構文 : (equal ''expr1'' ''expr2'' [''fuzz'']) ; 機能 : 2 つの式の評価結果が等しいかどうかを調べる。 ; 引数 :* expr1 : 比較する式。 :* expr2…)
 
編集の要約なし
 
(同じ利用者による、間の1版が非表示)
1行目: 1行目:
{{AutoLISP}}
; 構文
; 構文
: (equal ''expr1'' ''expr2'' [''fuzz''])
: (equal ''expr1'' ''expr2'' [''fuzz''])
5行目: 6行目:
; 機能
; 機能
: 2 つの式の評価結果が等しいかどうかを調べる。
: 2 つの式の評価結果が等しいかどうかを調べる。


; 引数
; 引数
12行目: 14行目:


::* 2 つの実数(または点を示す 2 つの実数のリストなど)を比較した場合、数値的に等しくても、計算方法が異なると、わずかな違いが生じることがある。fuzz 引数を指定することにより、異なる計算方法の結果として生じた違いを吸収することができる。
::* 2 つの実数(または点を示す 2 つの実数のリストなど)を比較した場合、数値的に等しくても、計算方法が異なると、わずかな違いが生じることがある。fuzz 引数を指定することにより、異なる計算方法の結果として生じた違いを吸収することができる。


; 戻り値
; 戻り値
47行目: 50行目:
-----
-----
関連事項
関連事項
* [[比較演算と条件]]
* [[=|= (に等しい)]] 関数
* [[=|= (に等しい)]] 関数
* [[eq]] 関数
* [[eq]] 関数


[[Category:AutoLISP]]
[[Category:AutoLISP]]

2015年11月19日 (木) 14:15時点における最新版

構文
(equal expr1 expr2 [fuzz])


機能
2 つの式の評価結果が等しいかどうかを調べる。


引数
  • expr1 : 比較する式。
  • expr2 : expr1 と比較する式。
  • fuzz : expr1 と expr2 が等しいと判断される両者の相違の最大値を定義する実数。
  • 2 つの実数(または点を示す 2 つの実数のリストなど)を比較した場合、数値的に等しくても、計算方法が異なると、わずかな違いが生じることがある。fuzz 引数を指定することにより、異なる計算方法の結果として生じた違いを吸収することができる。


戻り値
2 つの式が等しい(同じ値に評価)場合は T、それ以外の場合は nil。


サンプル
まず、次のように割り当てる。
(setq f1 '(a b c))  
(setq f2 '(a b c))  
(setq f3 f2) 
(setq a 1.123456)  
(setq b 1.123457) 
次に、f1 と f3 を比較します。
(equal f1 f3) 
T
f3 と f2 を比較すると、次のようになる。
(equal f3 f2) 
T
a と b を比較する。
(equal a b) 
nil
* a と b の値は、0.000001 異なっている。
fuzz 引数の値を 0.000001 に設定して、a と b を比較する。
(equal a b 0.000001) 
T
* a と b の値の違いは指定された fuzz の値と等しいので、equal 関数は両方の値を等しいと判定する。
eq 関数と equal 関数との違い
eq 関数が同一と判定したリストやアトムは、equal 関数を使用しても常に等しいと判定される。
equal 関数が等しいと判定したアトムは、eq 関数でも同一と判定される。 しかし、equal 関数が等しいと判定したリストは、eq 関数では同一ではないと判定されることがある。

関連事項