9

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

4

1 回答 1

2

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

像 Leiningen 这样的工具无法先验地知道你正在尝试编写什么样的程序,所以他们foo/core默认为你设置了一个命名空间,仿照clojure.core-clojure.core是 Clojure 的核心功能,所以 foo.core 是核心foo 的功能。

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

于 2013-05-06T04:19:09.857 回答