(defspel game-action (command subj obj place &rest rest)
`(defspel ,command (subject object)
`(cond ((and (eq *location* ',',place)
(eq ',subject ',',subj)
(eq ',object ',',obj)
(have ',',subj))
,@',rest)
(t '(i cant ,',command like that.)))))
这就是来自http://www.lisperati.com/actions.html的“宏定义宏”的代码。我似乎无法将其适当地转换为方案。有人可以向我解释在 Scheme 中创建同样类型的东西的过程吗?