匿名 Clojure 函数中的命名参数?

机器人先生

我正在学习 Clojure 中的闭包,这个函数让我感到困惑:

(defn inc-maker
  "Create a custom incrementor"
  [inc-by]
  #(+ % inc-by))

(def inc3 (inc-maker 3))

(inc3 7)
; => 10

作为 JavaScript 开发人员,我无法弄清楚参数7是如何传入的,因为在 Javascript 中,您必须像这样编写它:

const incMaker = incByX => incByY => incByX + incByY;

const incThree = incMaker(3);

incThree(7);

所以我的问题是,并不是我想将 Clojure 转换为 Javascript,而是有没有办法在匿名 Clojure 函数中命名参数?

大卫·史密斯

关于如何声明匿名函数,您可能会更详细一些。

#(+ % inc-by)

实际上扩展为等效的形式,例如

(fn [n] (+ n inc-by))

如果使用%1%2等等,扩展功能将会有更多的参数。

您可以在此文档中找到一些示例

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章