clojure - 本地覆盖运算符的正确方法,如"+","*"等

gat*_*ado 18 overriding clojure

覆盖像"+"这样的方法的正确方法是什么?现在我有

(defn- + [x y] (replacement x y))
Run Code Online (Sandbox Code Playgroud)

但这会在命令行上产生警告.

WARNING: + already refers to: #'clojure.core/+ in namespace: <MY-NAMESPACE>, being replaced by #'<MY-NAMESPACE>/+
Run Code Online (Sandbox Code Playgroud)

dno*_*len 33

您需要排除核心导入的函数:

 (ns your-ns
   (:refer-clojure :exclude [+ ...]))

 (defn + ...)
Run Code Online (Sandbox Code Playgroud)