私の問題は、提供されたドキュメントとサンプルでは、:key
パラメータまたはその可能な値の意味を理解できません。 これは、私は言及しています:
http://clojuredocs.org/clojure_core/clojure.core/add-watch何が意味するのですか:add-watch関数のキーパラメータ
追加-時計をclojure.core
(add-watch reference key fn)
は、エージェント/原子の/ var /再に、時計の機能を追加しますf参照。時計fn は、4つの引数のfnでなければなりません。キー、参照、古い状態、 新しい状態です。参照の状態が変更されたときはいつでも、 登録されている時計の機能が呼び出されます。時計fnは エージェントのスレッドで同期的に呼び出されます。エージェントの前には、 が保留中のエージェントまたはrefの場合に送信されます。アトムまたはrefの状態はfnコールの前に再び変更された可能性がありますので、参照を逆参照するよりも古い/新しい状態の を使用してください。watch fnsは複数のスレッドから同時に と呼ばれることに注意してください。 Varウォッチャーは、スレッドバインドの変更によってのみ にトリガされ、スレッドローカルでは設定されません。キーは参照ごとに一意の でなければなりません。また、取り外し時計、 で時計を取り外すために使用できますが、時計機構では不透明と見なされます。答えの右が
おかげ
'匿名関数には何の略r'のでしょうか? – qed
'r'はあなたが見ているもので、この場合は原子' a'です。逆参照した場合は 'new-state'と同じです。 – Kris