sí, son equivalentes,
:refer
y :require
son las operaciones básicas que se requieren para construir espacios de nombres. :use
es más conveniente
:require
hace que las clases sean cargados
:refer
añade cosas al espacio de nombres que es en realidad un mapa (en realidad un par de mapas)
:use
es :refer
+ :require
tanto como parece, realmente no hay magia en los espacios de nombres
si haces un espacio de nombres como esto
(ns so.example (:use my.lib))
el equivalente con: requieren sería:
(ns so.example (:require [my.lib :refer [function1 function2 function3
list every function in example
here and remember to keep it
up to date ]]))
Entiendo que ': refer' nos permite deshacernos de': use', pero ¿puede indicarme documentación que indique que esa fue la idea? Personalmente creo que ': use' es conveniente en ciertos casos, como con' clojure.test'. ¿Por qué no usar ': use' en tales casos? –
vea http://dev.clojure.org/jira/browse/CLJ-879 y enlace a la discusión en la lista de correo de clojure-dev ... –