24

clojure では単一セグメントの名前空間が推奨されていないことをいくつかの場所で読みました。

実際、私が見たほとんどすべてのライブラリには、(require 'lib) の代わりに (require 'lib.core) があります。

なんで?


編集:私は少しばかです。単一セグメントの名前空間がどのように悪いことであるかを示す簡潔な例については、追加のクレジットが与えられます。

4

2 に答える 2

26

Java では、他のパッケージからは何も参照できないため、デフォルト パッケージの使用はお勧めしません。ワンセグメント Clojure 名前空間をプリコンパイルすると、デフォルト パッケージに Java クラスが含まれます。Java からあなたのライブラリーを使いたいと思った人がいつでもいたとしても、この些細なことで止められてしまうでしょう。単一セグメントの名前空間を使用することを支持する正当な理由はなく、そうしない明確な理由が 1 つあるため、Clojure では単一セグメントの名前空間は推奨されない方法であると言っても過言ではありません。

于 2012-11-26T15:42:40.930 に答える
9

シングル セグメントの名前空間には、Java 相互運用性に関する問題があります。予期しない方法で壊れてしまうものもあります。https://groups.google.com/forum/?fromgroups=#!topic/clojure/gOffhotk25Yも参照してください。

于 2012-11-26T14:44:46.820 に答える