在clojure中通常的命名规则是什么?

qiu*_*fei 12 naming clojure naming-conventions

正如我所见,clojure的变量名比c/c ++/java更多.例如:

函数以'?'结尾 通常返回一个布尔值,它们是谓词.

还有以' - '开头或以'!'结尾的变量.

我认为这些都是clojure风格的命名.那么,clojure中通常的命名规则是什么?clojure程序员有什么共同之处吗?

mik*_*era 20

值得一看的是Clojure的图书馆编码标准,我认为它仍然可能是Clojure编码风格的最佳参考.

主要功能命名约定似乎是:

  • 使用小写函数名称: frobnicate
  • 多个单词名称使用连字符作为分隔符: frobnicate-with-extra-fizz
  • 使用名称空间允许您在需要时重用好名称: my.special.collection/concat
  • 使用?表明,返回true或false谓词:sequential?
  • 使用!指示与副作用,不交易的安全,例如,功能:set!

对于局部变量,以下是常见的:

  • f,g,h-功能
  • n - 表示大小或计数的整数
  • index,i- 整数索引
  • x,y- 数字
  • s - 字符串输入
  • coll - 一个集合
  • pred - 谓词闭包
  • & more - 可变输入

  • 这是一个很好的答案,但我有一个挑剔.我认为`?`应该仅用于实际返回`true`或`false`的函数.请参阅链接的文档:"使用"?谓词的后缀.NB - 谓词返回布尔值".核心的一个例子是[`some`](http://clojure.github.com/clojure/clojure.core-api.html#clojure.core/some)和[`every?`](http:/ /clojure.github.com/clojure/clojure.core-api.html#clojure.core/every?). (2认同)

Pet*_*Mmm 2

Clojure 是 Lisp 的一种方言,因此 Lisp 约定可能适用:http ://www.cliki.net/naming%20conventions