diff options
author | Jonathan D Johnston <jdjohn316ston@gmail.com> | 2017-10-21 20:33:14 -0400 |
---|---|---|
committer | Jonathan D Johnston <jdjohn316ston@gmail.com> | 2017-10-21 20:33:14 -0400 |
commit | d86597d4991b907f3d1940daf9ce97ca0ecf68dd (patch) | |
tree | 9bac0745b14a91363fd300c1817511d21121066d /edn.html.markdown | |
parent | 65d4f596cd247dcea10b588987772e1e7972fabe (diff) |
Improve the "Tagged Elements" section of EDN doc
- Change Clojure code to eliminate errors and to match commented output
> Change edn/read-string to clojure.edn/read-string (no _require_ in text)
> Change map->menu-item to map->MenuItem to match defrecord and output
- Modify the text to make it easier to understand the given example
Diffstat (limited to 'edn.html.markdown')
-rw-r--r-- | edn.html.markdown | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/edn.html.markdown b/edn.html.markdown index 9ecfb24f..f47853f0 100644 --- a/edn.html.markdown +++ b/edn.html.markdown @@ -84,22 +84,26 @@ github/fork ; you can't eat with this #MyYelpClone/MenuItem {:name "eggs-benedict" :rating 10} -; Let me explain this with a clojure example. Suppose I want to transform that +; Let me explain this with a Clojure example. Suppose I want to transform that ; piece of EDN into a MenuItem record. (defrecord MenuItem [name rating]) -; To transform EDN to clojure values, I will need to use the built in EDN -; reader, edn/read-string +; defrecord defined, among other things, map->MenuItem which will take a map +; of field names (as keywords) to values and generate a user.MenuItem record -(edn/read-string "{:eggs 2 :butter 1 :flour 5}") +; To transform EDN to Clojure values, I will need to use the built-in EDN +; reader, clojure.edn/read-string + +(clojure.edn/read-string "{:eggs 2 :butter 1 :flour 5}") ; -> {:eggs 2 :butter 1 :flour 5} -; To transform tagged elements, define the reader function and pass a map -; that maps tags to reader functions to edn/read-string like so +; To transform tagged elements, pass to clojure.edn/read-string an option map +; with a :readers map that maps tag symbols to data-reader functions, like so -(edn/read-string {:readers {'MyYelpClone/MenuItem map->menu-item}} - "#MyYelpClone/MenuItem {:name \"eggs-benedict\" :rating 10}") +(clojure.edn/read-string + {:readers {'MyYelpClone/MenuItem map->MenuItem}} + "#MyYelpClone/MenuItem {:name \"eggs-benedict\" :rating 10}") ; -> #user.MenuItem{:name "eggs-benedict", :rating 10} ``` |