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