“核心”命名空间命名法从何处衍生出来?

时间:2013-04-07 22:11:10

标签: clojure namespaces nomenclature

我对Clojure比较新,但我注意到很多项目实现了一个“核心”命名空间;例如foobar.core似乎是一种非常常见的模式。这背后的历史是什么?为什么它是事实上的标准?

1 个答案:

答案 0 :(得分:2)

它只是一个通用名称,代表某些东西的“核心”功能。 Clojure的核心功能本身定义了一种通用编程语言,在许多不同的问题域中可能需要非常通用的函数。仅适用于特定问题域的函数会进入特定于域的命名空间,例如clojure.stringclojure.set

像Leiningen这样的工具无法知道您尝试编写的程序是什么类型,因此默认情况下,它们为foo/core命名空间设置了clojure.core - { {1}}是Clojure的核心功能,所以foo.core是foo的核心功能。

如果您可以为您的核心命名空间赋予一个不太通用的名称,或者只是使用clojure.core启动引导(例如通过持有foo/core功能),那么鼓励这样做,以便您的大部分名称代码将驻留在更具语义意义的命名空间中。这有助于您找到以后要使用的特定代码。