11
Quand je requiers les bibliothèques des ns forme que je reçois:Pourquoi ne nécessite dans les ns forment un comportement différent de la fonction require
test> (ns test (:require '(clojure.contrib [logging :as log] [sql :as sql])))
lib names inside prefix lists must not contain periods
[Thrown class java.lang.Exception]
Lorsque j'utilise la fonction require fonctionne comme prévu.
test> (require '(clojure.contrib [logging :as log] [sql :as sql]))
nil
La documentation ns se réfère à la documentation de la fonction require mais comme ils se comportent différemment cela est un peu confus.
Aïe, mordue à nouveau par cette 'fonction' ... Merci! –
Oui, ce n'est pas très cohérent. La ligne directrice générale, cependant, est qu'il est toujours préférable d'utiliser ns au lieu d'importer, require, etc. directement. Vous devriez probablement penser aux formes individuelles comme des primitives de bas niveau, et utiliser ns exclusivement. – levand
Ce qui me surprend, c'est que les macros ne supportent pas la forme citée pour la cohérence. Je dois creuser dans ce un soir pour comprendre pourquoi c'est. –