看看一些特殊形式的扩展方式:
(macroexpand '(String. "foo"))
(macroexpand '('a))
;; etc
...并意识到它们是作为宏实现的,这让我很好奇用户定义的宏的语法形式限制是什么。到目前为止,我所有的宏在语法形式上都类似于函数。但是,例如,是否有可能定义一个如下所示的宏?
(macroexpand '(myprintln-foo))
;;=> (println "foo")
(macroexpand '(myprintln-zoo))
;;=> (println "zoo")