重命名 Clojure 的特殊形式的最佳方法是什么?
例如,如果我更喜欢 defvar 而不是 def 或 defun 而不是 defn,那么最好的方法是什么?
重命名 Clojure 的特殊形式的最佳方法是什么?
例如,如果我更喜欢 defvar 而不是 def 或 defun 而不是 defn,那么最好的方法是什么?
只需使用def
anddefn
代替。您可以定义转发到底层特殊形式的宏,但使用其他人所做的相同原语会更好。
虽然我完全同意amalloy 的回答,但看到快速而肮脏的解决方案可能会很有趣。您可以通过获取原始调用的所有参数并使用正版 Clojure 版本构造另一个宏调用来转发宏调用。
(defmacro defvar [& xs] `(def ~@xs))
(defmacro defun [& xs] `(defn ~@xs))