次のような関数を返す関数を定義すると:
(defn add-n
[n]
(fn [x] (+ x n)))
次に、結果をシンボルに割り当てることができます。
(def add-1 (add-n 1))
そしてそれを呼び出します:
(add-1 41)
;=> 42
(add-n 1)
の結果を新しいシンボルに割り当てずに呼び出すにはどうすればよいですか? 以下は、この出力を生成します。
(println (add-n 1))
#<user$add_n$fn__33 user$add_n$fn__33@e9ac0f5>
nil
は#<user$add_n$fn__33 user$add_n$fn__33@e9ac0f5>
、生成された関数への内部参照です。