重命名Clojure的特殊形式

Sel*_*m S 0 clojure naming-conventions special-form

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

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

ama*_*loy 8

只需使用defdefn不是.您可以定义转发到底层特殊表单的宏,但是使用与其他人相同的原语更好.


erd*_*dos 5

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

(defmacro defvar [& xs] `(def ~@xs))
(defmacro defun [& xs] `(defn ~@xs))
Run Code Online (Sandbox Code Playgroud)