我知道 LISP 宏参数中的解构是一件好事;我想知道它是否必不可少。举个例子,
(defmacro m1 (a) (car a))
和
(defmacro m2 ((a1 a2)) a1)
似乎(大致)等效-除了检查参数的正确形式。
我的猜测是解构使代码更容易编写/理解,但是任何使用它的代码都可能被翻译成没有的代码。我是对的还是这是一个愚蠢的初学者的错误?
我知道 LISP 宏参数中的解构是一件好事;我想知道它是否必不可少。举个例子,
(defmacro m1 (a) (car a))
和
(defmacro m2 ((a1 a2)) a1)
似乎(大致)等效-除了检查参数的正确形式。
我的猜测是解构使代码更容易编写/理解,但是任何使用它的代码都可能被翻译成没有的代码。我是对的还是这是一个愚蠢的初学者的错误?