我试着读一下Clojure,但是我用以下基本示例打了一堵砖墙:
(defn make-adder [x]
(let [y x]
(fn [z] (+ y z))))
(def add2 (make-adder 2))
(add2 4)
-> 6
Run Code Online (Sandbox Code Playgroud)
我不明白的是如何add2
将数字4传递给make-adder函数,以及该函数如何将该数字赋给z.
提前致谢!
make-adder
返回一个带有一个参数(z)的函数,传入的参数make-adder
用于为y赋值.add2
设置等于make-adder
参数为2 的评估结果.所以add2
设置等于从返回的函数make-adder
,因为(因为y已经分配给参数make-adder
),看起来像
(fn [z] (+ 2 z))
Run Code Online (Sandbox Code Playgroud)
所以(add2 4)
调用此函数计算结果为6.这有帮助吗?
归档时间: |
|
查看次数: |
309 次 |
最近记录: |