我正在学习 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] 删除。
我来说两句