Ral*_*lph 7 clojure higher-order-functions
如果我定义一个返回如下函数的函数:
(defn add-n
[n]
(fn [x] (+ x n)))
Run Code Online (Sandbox Code Playgroud)
然后我可以将结果分配给符号:
(def add-1 (add-n 1))
Run Code Online (Sandbox Code Playgroud)
并称之为:
(add-1 41)
;=> 42
Run Code Online (Sandbox Code Playgroud)
如何在(add-n 1)不将其分配给新符号的情况下调用结果?以下产生此输出:
(println (add-n 1))
#<user$add_n$fn__33 user$add_n$fn__33@e9ac0f5>
nil
Run Code Online (Sandbox Code Playgroud)
它#<user$add_n$fn__33 user$add_n$fn__33@e9ac0f5>是生成函数的内部引用.
Mau*_*ijk 16
简单:
(println ((add-n 1) 41))
Run Code Online (Sandbox Code Playgroud)
您看到的输出是函数定义.将它放在圆括号之间并添加参数就足以调用它.
| 归档时间: |
|
| 查看次数: |
1014 次 |
| 最近记录: |