2013-04-07 4 views
9

私は比較的新しいClojureですが、私は多くのプロジェクトが "コア"名前空間を実装していることに気付きました。例えばfoobar.coreは非常に一般的なパターンのようです。この背景には何があり、なぜ事実上の標準ですか?「コア」名前空間命名法は、どこから派生していますか?

+0

おそらく 'clojure.core'の規則の直後です。しかし、Stuart Sierraらは、あらゆるライブラリ(およびデフォルトのLeiningenプロジェクト)について、「何とか」を使いすぎることを誇張している。 – noahlz

+10

Proのヒント: 'lein new foo.bar'は' bar/core'ではなく 'foo/bar'を作成します。 – vemv

+0

@noahzリンクがありますか?私はこのことに関するスチュアートの意見を読んで好奇心が強い。 – maxcountryman

答えて

2

これは単なる「コア」機能を表す一般的な名前です。 Clojureの中心的な機能は、さまざまな問題領域で必要とされる可能性のある非常に汎用的な機能を持つ汎用プログラミング言語を定義しています。特定の問題のドメインにのみ適用できる関数は、clojure.stringclojure.setなどのドメイン固有の名前空間に入ります。 clojure.coreをモデルにした、Leiningenを同様

ツールは、あなたが書くしようとしているプログラムの先験的どのように知ることができないので、それらはデフォルトでfoo/core名前空間であなたを設定 - clojure.coreはClojureののコア機能です、だから、foo.coreはfooの中心的な機能です。

、あなたのコアの名前空間に少ない一般的な名前を与える、または単に(例えば、あなたの-main機能を保持するなど)、ブートストラップをキックオフするfoo/coreを使用できる場合は、それが奨励されます、あなたのコードの大部分は、より意味的に意味の中に存在するように、代わりに名前空間。これにより、後で作業する特定のコードを見つけるのに役立ちます。

関連する問題