2008年5月17日星期六

AutoLisp 的 quote 和 eval函数以及获取列表中符号对应的变量值

quote函数 禁止对表达式求值,单引号'是quote的简写。
eval函数 与quote 相反。

quota常用来建立列表,quota建立的列表里面如果含有变量,该变量的数据类型为符号,要用eval函数才能取到对应的变量值。

(defun C:try(/ )
;abc 为符号,要赋值和用eval取值
(setq abc 1 cba 2)
(setq e2 '((N1 abc)(N2 cba)))
(print (setq n1 (nth 1 (nth 0 e2))))
(print (setq n2 (nth 1 (nth 1 e2))))
(eval n1)
(eval n2)
(print(< (eval n1) (eval n2)))
)

另外,如果仅是要获得列表里面的数据,感觉用nth函数必用car,cdr函数要好用。

没有评论: