如果我理解正确,当我编写以下代码时:
(defn foo [x] (+ (* (- x 3) 2) (- x 3)))
foo
会被绑定到:
(fn [x] (+ (* (- x 3) 2) (- x 3)))
我该如何从foo
中访问该函数? 我的意图是更改函数中的某些内容并返回一个新函数。
如果我理解正确,当我编写以下代码时:
(defn foo [x] (+ (* (- x 3) 2) (- x 3)))
foo
会被绑定到:
(fn [x] (+ (* (- x 3) 2) (- x 3)))
我该如何从foo
中访问该函数? 我的意图是更改函数中的某些内容并返回一个新函数。
如果您想使用存储在变量 foo
中的函数值,只需写入 foo
,例如:
(def foo2 (comp - foo))
(foo 4) ;;=> 3
(foo2 4) ;;=> -3
对于变量,没有特殊的dereference表示法:只需使用它们的名称即可将它们解析为绑定的值。 函数不是您更改的内容,但您可以像上面那样从其他函数构建函数。