view 6-Clojure/atomcache.clj @ 93:39084e2b8744

Add a function for word-aware text wrapping Potentially hugely inefficient because we iterate through the string character by character, but then splitting it first and iterating over words still needs to iterate over the string to know where to split.
author IBBoard <dev@ibboard.co.uk>
date Tue, 18 Jun 2019 21:05:00 +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)