惯用语Clojure功能别名

nha*_*nha 8 idioms clojure clojurescript

在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)
Run Code Online (Sandbox Code Playgroud)

Thu*_*ail 10

我喜欢def到defn.

该defn版本

  • 有一个插入的函数调用,可能会或可能不会被删除;
  • 限制为arity 1,而def版本具有原始的所有arities.