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

15

我发现,与C/C ++/Java相比,Clojure的变量名具有更多字符。例如:

以“?”结尾的函数通常返回布尔值,它们是谓词。

还有以“-”开头或以“!”结尾的变量。

我认为这些都是Clojure风格的命名。那么,在Clojure中通常的命名规则是什么?Clojure程序员有什么共同点吗?


可能是2011年一个问题的重复:https://dev59.com/pWw15IYBdhLWcg3wSJzQ - David J.
3个回答

25
值得一看的是Clojure的库编码标准,我认为这可能仍然是关于Clojure编码风格最好的参考。
主要的函数命名约定似乎是:
- 使用小写函数名:frobnicate - 多个单词使用连字符作为分隔符:frobnicate-with-extra-fizz - 使用命名空间以允许您在需要时重用良好的名称:my.special.collection/concat - 使用?表示返回真或假的谓词:sequential? - 使用!表示具有副作用且不是事务安全的函数,例如:set! 对于局部变量,通常使用以下内容:
  • fgh - 函数
  • n - 表示大小或数量的整数
  • indexi - 整数索引
  • xy - 数字
  • s - 字符串输入
  • coll - 集合
  • pred - 一个谓词闭包
  • & more - 可变输入

1
我有时会看到一些函数名以结尾,比如foo。这个*代表什么意思? - DanLebrero
2
这是一个好的回答,但是我有一点小问题。我认为?应该仅用于实际返回truefalse的函数。请看链接文档:“谓词使用'?'后缀。注意-谓词返回布尔值”。核心中的例子是someevery? - okonomichiyaki
@dAni:我编辑了与 foo*(还有为了保险起见的*foo*) 相关的东西。 - thedayturns

2

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接