【发布时间】:2014-06-04 15:28:35
【问题描述】:
我想知道这两个nth的定义是否相等:
我。被定义为宏:
(defmacro -nth (n lst)
(defun f (n1 lst1)
(cond ((eql n1 0) lst1)
(t `(cdr ,(f (- n1 1) lst1)))))
`(car ,(f n lst)))
二。被定义为一堆函数:
(defun f (n lst)
(cond ((eql n 0) lst)
(t `(cdr ,(f (- n 1) lst)))))
(defun f1 (n lst)
`(car ,(f n `',lst)))
(defun --nth (n lst)
(eval (f1 n lst)))
我的想法正确吗?宏定义是表达式的求值,是在它的主体中构造的吗?
【问题讨论】:
标签: macros lisp common-lisp evaluation