2011-10-16 8 views

Respuesta

12

Observe :as xml que cuando se combina con :only [] parece hacer esa línea equivalente a (:require [clojure.xml :as xml]). Ese estilo puede ser útil si desea copiar algunos valores en el espacio de nombre local (es decir, un :only no vacío), pero permita que el resto de ese espacio de nombres se alias explícitamente a través del :as. Como eso no es lo que está haciendo, realmente debería ser un :require.

+3

Probablemente la persona que escribe este código ya tiene un montón de declaraciones ': use' y no quiere escribir una cláusula': require' por separado. No es una decisión recomendada de la OMI, pero si solo tiene un espacio de nombre que está usando de esta manera, le ahorraría un par de caracteres. – amalloy

+0

Código olor? Me pregunto por qué los diseñadores de idiomas no optaron por tener un formulario de uso/requerimiento * único * (combinado). –

+0

@SridharRatnakumar Qué. Esa pregunta "me pregunto" no tiene sentido. La macro 'ns' es una forma combinada de uso/requerimiento, y usted debe especificar de alguna manera qué parte quiere que se interprete como' use', y cuál como 'require'. Él no podía simplemente adivinar mágicamente. – amalloy