「Equal」の版間の差分
 (ページの作成: ; 構文 : (equal ''expr1'' ''expr2'' [''fuzz''])   ; 機能 : 2 つの式の評価結果が等しいかどうかを調べる。  ; 引数 :* expr1 : 比較する式。  :* expr2…)  | 
				細編集の要約なし  | 
				||
| 47行目: | 47行目: | ||
-----  | -----  | ||
関連事項  | 関連事項  | ||
* [[比較演算と条件]]  | |||
* [[=|= (に等しい)]] 関数  | * [[=|= (に等しい)]] 関数  | ||
* [[eq]] 関数  | * [[eq]] 関数  | ||
[[Category:AutoLISP]]  | [[Category:AutoLISP]]  | ||
2014年11月24日 (月) 09:21時点における版
- 構文
 - (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 関数では同一ではないと判定されることがある。
 
関連事項