2012-05-24 12 views
11

私が見ているように、clojureはc/C++/javaよりも変数名の文字数が多いです。例:clojureの通常の命名規則は何ですか?

関数の末尾に「?」が付きます。通常はブール値を返します。これらは述語です。

「 - 」で始まる変数または「!」で終わる変数もあります。

私はこれがすべてクロージャースタイルのネーミングだと思います。だから、clojureの通常の命名規則は何ですか? clojureプログラマーにとって共通のことがありますか?

+0

2011年質問の可能な複製:http://stackoverflow.com/questions/6709131/what-are-clojures-naming-conventions –

答えて

19

それはClojureのの私が思うLibrary Coding Standards見て価値があるが、おそらくまだClojureのコーディングスタイルで最高のリファレンスです。

主な機能の命名規則があるように見える:

  • 使用小文字の関数名:frobnicate
  • 複数の単語名がセパレータとしてハイフンを使用します。frobnicate-with-extra-fizz
  • 使用名前空間を使用すると、優れた再使用できるようにしますmy.special.collection/concat
  • を返す述語を示すには、 ?を使用します。
  • 使用!トランザクション安全ではない副作用、例えばと機能を示すために:ローカル変数の場合set!

次共通です:

  • fgh - 機能
  • n - サイズまたはカウントを表す整数
  • index,i - 整数インデックス
  • xy - 数字
  • s - 文字列を入力
  • coll - コレクション
  • pred - 述語閉鎖
  • & moreから
+1

foo *のように、最後に*という名前の関数がいくつか見られることがあります。 *はどういう意味ですか? – DanLebrero

+2

これは良い答えですが、私はニットピックを持っています。 '?'は、実際に 'true'や' false'を返す関数に対してのみ使われるべきだと思います。リンクされたドキュメントを参照してください: "Use '?'述語の接尾辞。N.B. - 述語はブール値を返す "。これをコアとする例は['some'](http://clojure.github.com/clojure/clojure.core-api.html#clojure)です。core/some)と[every every?](http://clojure.github.com/clojure/clojure.core-api.html#clojure.core/every?)を参照してください。 – spacemanaki

+0

@dAni: 'foo *'(と '* foo *')に関するものを編集しました。 – thedayturns

関連する問題