重命名 Clojure 的特殊形式

Renaming Clojure's special forms

重命名 Clojure 的特殊形式的最佳方法是什么?

例如,如果我更喜欢 defvar 而不是 def 或者 defun 而不是 defn,那么最好的方法是什么?

只需使用 defdefn 即可。您 可以 定义转发到底层特殊形式的宏,但是使用其他人使用的相同原语会更好。

虽然我完全同意 ,但看到快速而肮脏的解决方案可能会很有趣。您可以通过获取原始调用的所有参数并使用正版 Clojure 版本构造另一个宏调用来转发宏调用

(defmacro defvar [& xs] `(def ~@xs))
(defmacro defun [& xs] `(defn ~@xs))