Clojure でクロージャーを作成して、次の JavaScript コードをシミュレートしたいと考えています。
var nextOdd = function () {
var x = 1;
return function () {
var result = x;
x += 2;
return result;
}
}();
nextOdd(); //1
nextOdd(); //3
nextOdd(); //5
Clojure がクロージャーをサポートしていることを知っているので、次のようなものを書くことができる可能性があります
(defn plusn [x]
(fn [y] (+ x y)))
(def plus2 (plusn 2))
(plus2 3)
しかし、関数を呼び出すたびに状態 (つまり、次の奇数の状態) を維持するものが必要です...そして、Clojure には不変性全体があります...