为什么Clojure开发人员使用“xs”作为函数args?

时间:2015-02-22 17:01:45

标签: parameters clojure naming-conventions

在大多数语言中,都有围绕参数的约定。例如在嵌套循环中,您可以在顶层使用i,然后使用j,然后使用k

但在Clojure中,我不知道会议的内容。我经常看到xs在函数参数中的使用;那为什么呢?这是否具体是什么意思?还有其他惯例吗?

3 个答案:

答案 0 :(得分:10)

对于命名约定,您可以参考Clojure library coding standards

具体做法是:

Follow clojure.core's example for idiomatic names like pred and coll.

in fns
    f, g, h - function input
    n - integer input usually a size
    index - integer index
    x, y - numbers
    s - string input
    coll - a collection
    pred - a predicate closure
    & more - variadic input
in macros
    expr - an expression
    body - a macro body
    binding - a macro binding vector

答案 1 :(得分:9)

我不确定它是一个标准,但对于一个简单的变量,常规约为x,对于表示序列的变量,约定xs。 's'代表序列或复数,这很方便。

例如,在解构中,您可以使用[x & xs]作为第一个和第二个。 您还可以找到idx索引和idxs 更多索引

答案 2 :(得分:3)

Haskell和F#遵循相同的命名标准/模式。 xs是由x组成的复数。

另请参阅:https://stackoverflow.com/a/6267767/2370606