¿Cuál es la forma correcta de anular un método como "+"? En este momento tengoclojure - forma correcta de anular localmente operadores como "+", "*", etc.
(defn- + [x y] (replacement x y))
pero esto ocasiona advertencias en la línea de comandos.
WARNING: + already refers to: #'clojure.core/+ in namespace: <MY-NAMESPACE>, being replaced by #'<MY-NAMESPACE>/+
Para ser claros, para los más nuevos de Clojure, esta pregunta no se trata de 'sobrescribir' en un sentido orientado a objetos (Clojure no está orientado a objetos). Realmente lo que la pregunta es cómo prevenir la advertencia que se activa cuando una var global se rebota. La primera vinculación ocurre porque el uso de la macro 'ns' trae asignaciones de clojure.core. (ver http://clojure.org/namespaces) El segundo enlace ocurre cuando un archivo local vuelve a enlazar la var. –
Además, más terminología: Clojure no tiene métodos. Tiene funciones. –