3

だから私がこれを正しく理解していれば、私が書くとき:

(defn foo [x] (+ (* (- x 3) 2) (- x 3)))

fooバインドされます:

(fn [x] (+ (* (- x 3) 2) (- x 3)))

から関数にアクセスするにはどうすればよいfooですか?私の意図は、関数内の何かを変更して、新しい関数を返すことです。

4

1 に答える 1

5

Varに格納されている関数値を使用する場合は、次のfooように記述fooします。

(def foo2 (comp - foo))
(foo 4) ;;=> 3
(foo2 4) ;;=> -3

Varsには特​​別なderef表記はありません。名前を使用するだけで、バインドされた値に解決されます。関数は変更するものではありませんが、上記のように他の関数から関数を作成することができます。

于 2013-03-24T10:06:52.843 に答える