view 6-Clojure/atomcache.clj @ 103:98be775c533c default tip

An odd "non-determinism" example from StackOverflow It is clever, but doesn't make much sense as to how it gets its results
author IBBoard <dev@ibboard.co.uk>
date Sun, 14 Jul 2019 13:44:13 +0100
parents eccc649d49a2
children
line wrap: on
line source

(defn create_price_list
    []
    (atom {}))

; We can't use get because it's part of clojure.core
(defn get_price
    [prices name]
    (@prices name))

(defn set_price
    ([prices new_price_map]
        (swap! prices merge new_price_map))
    ([prices name price]
        (swap! prices assoc name price)))

(def my_shares (create_price_list))
(set_price my_shares :GW 299)
(set_price my_shares :BT 1563)
(set_price my_shares :ROYALMAIL 29)
(println (get_price my_shares :BT))
(println (get_price my_shares :FOO))
(println my_shares)