lisp比较函数,对比比较表,equal和eq区别

  • A+
所属分类:CAD二次开发

lsp写程序的时候很多地方都会用到比较函数,如我有两个表,怎么判断他是否一样了。比较肯定是两个才能比较,

函数(eq 数据1 数据2)。判别是否是同一个表。两者是否为同一个表达式

例子

(defun C:T3 (/ a1 a2 a3 a4 a5)
(setq a1 '(1 2 3)
a2 '(1 2 3)
a3 '(a b c)
a4 '(huojibk_com)
)
(setq a5 a1);同一表
(princ A5)
(princ A6)

(eq a1 a5);同一表 返回T
;(eq a1 a2);同样表 返回nil

)复制

上面的例子,同一个表返回T ,两个表一样返回nil

函数(equal 数据1 数据2)。数据1 数据2所包含的元素是否一样

例子

(defun C:T3 (/ a1 a2 a3 a4 a5)
(setq a1 '(1 2 3)
a2 '(1 2 3)
a3 '(a b c)
a4 '(huojibk_com)
)
(setq a5 a1);同一表
(princ A5)
(princ A6)

;(equal a1 a5);同一表 返回T
;(equal a1 a2);同样表 返回T
(equal a1 a3);同样表 返回nil
)
复制

上例子,两个表里面的值,位置都一样返回T,否则返回nil

 

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: