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

max*_*man 9 namespaces clojure nomenclature

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

Pau*_*ato 2

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

像 Leiningen 这样的工具无法预先知道您要编写什么样的程序,因此它们默认为您设置一个foo/core名称空间,该名称空间模仿clojure.core--clojure.core是 Clojure 的核心功能,因此 foo.core 是核心foo 的功能。

如果您可以为您的核心命名空间提供一个不太通用的名称,或者只是用于foo/core启动引导(例如通过保存您的-main函数),那么我们鼓励您这样做,这样您的大部分代码将驻留在语义上更有意义的命名空间中。这可以帮助您找到稍后要处理的特定代码。