【发布时间】:2014-05-18 20:37:29
【问题描述】:
(define-macro and
(lambda args
(if (null? args) #t
(if (null? (cdr args)) (car args)
(if (car args) `(and ,@(cdr args)) #f)))))
这是修改后的宏,即最后一行不同。我知道正确的正确方法是
`(if ,(car args) (and ,@(cdr args)) #f)))))
但我不知道这种变化会如何影响这个宏的行为。我认为它的工作原理是一样的,但如果不是,你能举个例子吗?enter code here
【问题讨论】: