Mercurial > repos > other > SevenLanguagesInSevenWeeks
annotate 6-Clojure/atomcache.clj @ 83:eccc649d49a2
Add Day 2 and Day 3 notes and example code
Clojure STILL doesn't make much sense in lots of places
author | IBBoard <dev@ibboard.co.uk> |
---|---|
date | Sat, 08 Jun 2019 21:23:27 +0100 |
parents | |
children |
rev | line source |
---|---|
83
eccc649d49a2
Add Day 2 and Day 3 notes and example code
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
1 (defn create_price_list |
eccc649d49a2
Add Day 2 and Day 3 notes and example code
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
2 [] |
eccc649d49a2
Add Day 2 and Day 3 notes and example code
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
3 (atom {})) |
eccc649d49a2
Add Day 2 and Day 3 notes and example code
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
4 |
eccc649d49a2
Add Day 2 and Day 3 notes and example code
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
5 ; We can't use get because it's part of clojure.core |
eccc649d49a2
Add Day 2 and Day 3 notes and example code
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
6 (defn get_price |
eccc649d49a2
Add Day 2 and Day 3 notes and example code
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
7 [prices name] |
eccc649d49a2
Add Day 2 and Day 3 notes and example code
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
8 (@prices name)) |
eccc649d49a2
Add Day 2 and Day 3 notes and example code
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
9 |
eccc649d49a2
Add Day 2 and Day 3 notes and example code
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
10 (defn set_price |
eccc649d49a2
Add Day 2 and Day 3 notes and example code
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
11 ([prices new_price_map] |
eccc649d49a2
Add Day 2 and Day 3 notes and example code
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
12 (swap! prices merge new_price_map)) |
eccc649d49a2
Add Day 2 and Day 3 notes and example code
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
13 ([prices name price] |
eccc649d49a2
Add Day 2 and Day 3 notes and example code
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
14 (swap! prices assoc name price))) |
eccc649d49a2
Add Day 2 and Day 3 notes and example code
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
15 |
eccc649d49a2
Add Day 2 and Day 3 notes and example code
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
16 (def my_shares (create_price_list)) |
eccc649d49a2
Add Day 2 and Day 3 notes and example code
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
17 (set_price my_shares :GW 299) |
eccc649d49a2
Add Day 2 and Day 3 notes and example code
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
18 (set_price my_shares :BT 1563) |
eccc649d49a2
Add Day 2 and Day 3 notes and example code
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
19 (set_price my_shares :ROYALMAIL 29) |
eccc649d49a2
Add Day 2 and Day 3 notes and example code
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
20 (println (get_price my_shares :BT)) |
eccc649d49a2
Add Day 2 and Day 3 notes and example code
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
21 (println (get_price my_shares :FOO)) |
eccc649d49a2
Add Day 2 and Day 3 notes and example code
IBBoard <dev@ibboard.co.uk>
parents:
diff
changeset
|
22 (println my_shares) |