(let [a (atom {:b 1 :c 1})] (run {(list :a :watch watching) {:b ? :c ?}} {:a a}))
will add a watch on atom a, whenever a changes and causing :b, :c value changes, watching function will be called with new data and old data as its arguments. If watching returns nil, we can remove the watch.
(let [a (atom {:b 1 :c 1})] (run {(list :a :watch watching) {:b ? :c ?}} {:a a}))will add a watch on atom
a, wheneverachanges and causing:b,:cvalue changes,watchingfunction will be called with new data and old data as its arguments. Ifwatchingreturns nil, we can remove the watch.