重命名Clojure';s特殊表格

重命名Clojure';s特殊表格,clojure,naming-conventions,special-form,Clojure,Naming Conventions,Special Form,给Clojure的特殊表单重命名的最好方法是什么 例如,如果我更喜欢defvar而不是def,或者defun而不是defn,那么最好的方法是什么?只需使用def和defn。您可以定义转发到底层特殊表单的宏,但只使用其他人使用的相同原语会更好。只需使用def和defn。您可以定义转发到底层特殊表单的宏,但只使用其他人使用的相同原语会更好。虽然我完全同意,但看到快速而肮脏的解决方案可能会很有趣。您可以通过获取原始调用的所有参数并使用真正的Clojure版本构造另一个宏调用来转发宏调用 (defmac

给Clojure的特殊表单重命名的最好方法是什么


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

只需使用
def
defn
。您可以定义转发到底层特殊表单的宏,但只使用其他人使用的相同原语会更好。

只需使用
def
defn
。您可以定义转发到底层特殊表单的宏,但只使用其他人使用的相同原语会更好。

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

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

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

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

我已经看到了使用现有函数的好处。如果您能给出一个使用宏进行转发的示例,那就太好了。非常感谢。我已经看到了使用现有函数的好处。如果您能给出一个使用宏进行转发的示例,那就太好了。非常感谢。