惯用的 Clojure 函数别名
Idiomatic Clojure function alias
在 Clojure 中为函数设置别名的最惯用的方法是什么?
这两种方法在执行方面有什么不同吗?
示例取自 Om(Clojurescript,但 Clojure 中的语法是相同的):
(defn query->ast
"Given a query expression convert it into an AST."
[query-expr]
(parser/query->ast query-expr))
(def query->ast
"Given a query expression convert it into an AST."
parser/query->ast)
我更喜欢 def
而不是 defn
。
defn
版本
- 有一个插入的函数调用,可能会也可能不会被省略;
- 仅限于 arity 1,而
def
版本具有所有 arity
原来的。
在 Clojure 中为函数设置别名的最惯用的方法是什么? 这两种方法在执行方面有什么不同吗?
示例取自 Om(Clojurescript,但 Clojure 中的语法是相同的):
(defn query->ast
"Given a query expression convert it into an AST."
[query-expr]
(parser/query->ast query-expr))
(def query->ast
"Given a query expression convert it into an AST."
parser/query->ast)
我更喜欢 def
而不是 defn
。
defn
版本
- 有一个插入的函数调用,可能会也可能不会被省略;
- 仅限于 arity 1,而
def
版本具有所有 arity 原来的。