35

Clojureでプライベート関数を定義するとき、私は通常-、関数が名前空間の外で使用できないことを視覚的に示すためにプレフィックスを使用します。

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

ただし、-プレフィックスは、を使用する場合のパブリックメソッドの規則でもあるようgen-classです。

defn-Clojureコミュニティで一般的に受け入れられている関数の規則はありますか?それとも単に接頭辞のない名前を使用する必要がありますか?

clojure.contribの多くのコード(安心して使用できるかもしれません)はプライベート関数に通常の名前を使用しているようですので、それが最善かもしれませんが、視覚的なインジケーターが本当に好きです-おそらく私のC / Perlの背景が強すぎます!;)

4

2 に答える 2

49

慣習はありません。ビジュアル インジケーターは、組み込み関数の概念がない言語で一般的です。で定義された Clojure の関数defn-は名前空間の外では見えないため、関数の前に uglifier を付ける必要はありません ;)

だからあなたがすることをしてください。しかし、コミュニティの残りの部分と同じように、普通に名前を付けてください。それはあなたの人生を楽にします。

于 2012-06-01T15:42:41.607 に答える
25

命名規則については知りませんが、^:privateプライベート関数を定義するためのメタデータ タグを添付できます。これは とまったく同じですdefn-が、もう少し明確です。

(defn ^:private foo [])
于 2012-06-01T16:23:52.477 に答える