clojure - 惯用的 Clojure 函数别名

标签 clojure clojurescript idioms

在 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)

最佳答案

我更喜欢 defdefn .
defn版本

  • 有一个插入的函数调用,它可能会或可能不会被省略;
  • 仅限于 arity 1,而 def版本具有以下所有功能
    原本的。
  • 关于clojure - 惯用的 Clojure 函数别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34228583/

    相关文章:

    clojure - 如何在clojure中打印一个非常大的数据结构?

    clojure - 如何限制 core.async channel 的写入频率?

    haskell - 在 Haskell 中引用单例列表构造函数的惯用方式是什么?

    c++ - 如何用 std::string 或其等效项包装 char 的普通缓冲区?

    c++ - 用于实例化模板化代码的显式习惯用法 - 不包含其源代码

    java - 在 Clojure/Java 中通过自定义协议(protocol)建立 HTTP 隧道

    Clojure:实现 assoc-in 函数

    clojure - 99 Clojure 中的第 9 题(将连续重复的列表元素打包到子列表中)

    javascript - 如何在 javascript 中使用 clojurescript 的复杂返回对象

    ClojureScript 参数声明错误