Deshacer la sobrescritura de la función incorporada en Clojure.
Logré redefinir por error la función integrada vector
.
Más específicamente, esto es lo que hice:
(def vector [1 2 3 4 5 6])
Y esto es lo que pretendía hacer:
(def my-vector (vector 1 2 3 4 5 6))
¿Existe alguna manera de “deshacer” ese error sin reiniciar el REPL?
es decir, reversionando vector
a su definición predeterminada.
davy.ai
Sí, puedes deshacer el error haciendo referencia a la función original
vector
en la biblioteca principal de Clojure utilizando el espacio de nombresclojure.core/vector
. Así es como puedes hacerlo:Este código redefine
vector
para hacer referencia a la función original devector
en el espacio de nombresclojure.core
. Después de ejecutar este código, puedes usarvector
como de costumbre.Nota: Por lo general, no se recomienda redefinir las funciones integradas en Clojure o cualquier lenguaje de programación, ya que puede causar un comportamiento inesperado y hacer que tu código sea más difícil de entender y mantener.