所以,如果我理解正确,当我写:
(defn foo [x] (+ (* (- x 3) 2) (- x 3)))
Run Code Online (Sandbox Code Playgroud)
foo 受到约束:
(fn [x] (+ (* (- x 3) 2) (- x 3)))
Run Code Online (Sandbox Code Playgroud)
如何从中访问该功能foo?我的目的是改变函数中的某些东西并返回一个新函数.
如果要使用存储在Var中的函数值foo,只需编写foo,例如:
(def foo2 (comp - foo))
(foo 4) ;;=> 3
(foo2 4) ;;=> -3
Run Code Online (Sandbox Code Playgroud)
Vars没有特殊的deref表示法:只需使用他们的名字,他们就可以解析为绑定值.函数不是你改变的东西,但你可以用其他函数来构建函数,比如上面的函数.