Thanks for picking up the cudgels Ben!
To be honest I am struggling to repeat your advice in the REPL. In any
case, I decided to change the data structures in line with your advice and
put the IDs into maps rather than the records.
(defrecord Item [name product quantity purchased])
(defrecord Product [name description prices])
(defrecord Price [price tax currency])
(def items [ {:id 1 :item (->Item "Brogues" "P-123" 1 true)}
{:id 2 :item (->Item "Underpants" "P-345" 2 false)}
{:id 3 :item (->Item "Shirt" "P-678" 1 true)} ])
(def carts [ (->Cart "Birthday" (first items))
(->Cart "Xmas" (rest items)) ])
(def products [ {:id "P-1231" :product (->Product "Table" "Coffee Table"
(->Price 375 21 "EURO"))}
{:id "P-3451" :product (->Product "Chairs" "Set of Four(4)
chairs" (->Price 200 21 "EURO"))}
{:id "P-123" :product (->Product "Brogues" "Men's Leather
Slip on Brogues" (->Price 93.00 21 "EURO"))}
{:id "P-345" :product (->Product "Underpants" "CK Y Fronts"
(->Price 23.50 21 "EURO"))}
{:id "P-678" :product (->Product "Shirt" "Slim Fit White
Vest Shirt" (->Price 45.99 21 "EURO"))}
{:id "P-6781" :product (->Product "TableCloth" "Classic red
and white checks 2m x 2m" (->Price 17.99 21 "EURO"))} ])
Do you think the zipmap is still the way to go (to resolve the 'foreign
key' or could there be an easier way? I guess the fact that only items have
to zipmapped is one advantage.
Thanks for your support
ray
On Saturday, December 15, 2012 7:53:32 PM UTC+1, Benjamin R. Haskell wrote:
>
> On Sat, 15 Dec 2012, Benjamin R. Haskell wrote:
>
> > Or if you really want a list, you need to quote it:
> >
> > (map (fn [item product] '(:id item :description product)) items
> products)
>
> Oops, wrong. Rather, you would want clojure.core/list:
>
> (map (fn [item product] (list :id item :description product)) items
> products)
>
> --
> Best,
> Ben
>
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to [email protected]
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en