我最近开始学习Clojure,而且我在使用命名空间时遇到了一些困难.正如Clojure的创造者所说,新人往往很难将这个概念弄清楚.我不清楚它(use ...)和之间的区别(require ...).例如,如果我说(use 'clojure.contrib.str-utils2)在clojure.core命名空间中的函数被clojure.contrib.str-utils2中的函数替换,那么在REPL中玩游戏,但是当我使用时,这不会发生(require 'clojure.contrib.str-utils2).我不确定我是否总是想要替换clojure.core中的内容,那么有人可以指出一些最佳实践来导入外部内容并在Clojure中管理名称空间吗?
哦,还有,我什么时候应该使用:use和:require?只在里面(ns ....)?
提前致谢.