【摘要】:前面我们介绍了等值比较函数“=”,它只能用于数、符号原子和字符串,即原子的等值比较函数,它不能用于表。eq函数用于检查两个表达式<expr1>和<expr2>是否约束于同一对象,即它们不仅值相等,而且占用同一内存单元。因此,任选变元<fuzz>可以让用户指定表达式<expr1>和<expr2>间的最大差值,在此范围内,仍然认为<expr1>和<expr2>是相等的。所有同源值一定相等不同源时,INTREALSTR类型一定相等不同源时,ENAME类型,“=”不等,“eqequal”相等。
前面我们介绍了等值比较函数“=”,它只能用于数、符号原子和字符串,即原子的等值比较函数,它不能用于表。下面将要介绍的两个等值函数可以用于任意的表达式。
1.Eq。
此函数确定两个表达式是否恒等。eq函数用于检查两个表达式<expr1>和<expr2>是否约束于同一对象(用setq函数),即它们不仅值相等,而且占用同一内存单元。若是,则返回T;否则返回nil。
例如:
2.Equal。
此函数确定两个表达式的值是否相等。equal函数确定两个表达式的求值结果是否相等。当比较两个实型数(或由实型数组成的点表)时,如果采用不同的方法来计算它们,则恒等的两个数也可以稍有差别。因此,任选变元<fuzz>可以让用户指定表达式<expr1>和<expr2>间的最大差值,在此范围内,仍然认为<expr1>和<expr2>是相等的。
例如:
3.函数“=”,“eq”和“equal”之间的比较。(www.chuimin.cn)
(1)所有同源值一定相等
(2)不同源时,INTREALSTR类型一定相等
(3)不同源时,ENAME类型,“=”不等,“eqequal”相等。(setqe1(car(entsel))e2c(ar(entsel)))这时选取相同实体
(4)不同源时,LIST类型,“=eq”不等,“equal”相等
(5)PICKSET好像不存在不同源问题
(6)对不常用类型SYMSUBREXRXSUBR等未加分析,SYM属于不同源时相等的一类
相关推荐