2012-06-01 11 views
29

Clojureでプライベート関数を定義するとき、私は通常、関数が自分の名前空間の外で使用できないことを視覚的なインジケータとして-のプレフィックスを使用します。プライベート関数の名前を付けるClojureの規約はありますか?

(defn- -name [] 
    (let [formatter (formatter "yyyy-MM-dd-HH-mm-ss-SSSS")] 
    (format "fixjure-%s" (unparse formatter (now))))) 

しかし-接頭辞gen-classを使用した場合、公開メソッドの大会のようです。

Clojureコミュニティのdefn-の機能には一般的に受け入れられている規約がありますか、または単に接頭辞のない名前を使うべきですか?

clojure.contrib(安心して安心できるかもしれません)のコードは、プライベート関数の通常の名前を使用しているようですので、おそらくそれがベストですが、私は本当にビジュアルインジケータが好きです。ちょうど強すぎる! ;)

答えて

40

慣例はありません。視覚的インジケータは、プライベート機能の組み込み概念のない言語で一般的です。 defn-で定義されたClojureの関数はネームスペースの外側には表示されないため、関数の前にuglifierを付ける必要はありません)

それでもあなたは何をしますか?ちょうどそれらの名前を普通にする!あなたの人生を楽にします。

+0

意味があります。ありがとう! –

23

私は命名規則を知らないが、^:privateメタデータタグを添付して私的機能を定義することができます。これはまったくdefn-に相当しますが、IMHOでは少し明確です。

(defn ^:private foo []) 
+1

これを現在の名前空間に対して行うには、 '(def ^:private -ns- * ns *)' – nuaavee

関連する問題