コンテクスト
Clojureエージェントには新しい値は送信されません。古い値に適用される関数が送信されます。プログラミングの初期の頃、私はこのカウンターが直感的であることに気づき、次の形式のコードを書くことがよくありました。
(send some-atom (fn [old] new_value))
その後、徐々に、新しい値ではなく更新関数を送信することがいかに素晴らしいかを実感しました。
質問:
このアイデアは元々どこから来たのですか?(新しい値の代わりに)update-functionを送信するのは何ですか?このアイデアは、並行性を処理する別の方法のためのより一般的な一連の手法の一部ですか?
ありがとう!