Mercurial > repos > other > SevenLanguagesInSevenWeeks
annotate 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 |
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) |