On May 3, 2014, at 6:42 AM, Roelof Wobben <rwob...@hotmail.com> wrote:

> 
> (fn [default initial-keys]
>   (loop [remaining-keys initial-keys
>          result-map     {}]
>      (if (empty? remaining-keys)
>        result-map
>        (let [key             (first remaining-keys)
>              remaining-keys' (rest remaining-keys)
>              result-map'     (assoc result-map key default)]
>          (recur remaining-keys' result-map')))))
> 
> This also passes the unit tests.
> 
> Maybe that's a bit clearer as to what's going on. Maybe the new names help a 
> bit. Notice the ticks on some of the names (the ' characters). This is just a 
> convention some programmers use. The ticks are part of the name, nothing 
> magic, and are used to indicate that the value of the name is derived from 
> the value of the name with one less tick. Some programmers use numbers 
> instead. Other programmers don't care and just use the same name.
> 
> When you've understood the solution you've come up with, you might want to 
> try using reduce to do this. It'll be both shorter and much easier to 
> understand. If you look carefully at your code the only part that isn't 
> boiler-plate is the (assoc result-map key default) -- the boiler-plate 
> corresponds closely to what reduce does.
> 
> 
> Thanks,
> 
> Now It more clearer what loop does.
> I can look at a reduce solution but then I have to look which reduce I have 
> to use.
> I know  reduce + and reduce - which does calculations on the collection.

This reduce: http://clojuredocs.org/clojure_core/clojure.core/reduce is what 
you need.

Cheers,
Bob

> 
> Roelof
>  
> 
> -- 
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with your 
> first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> --- 
> You received this message because you are subscribed to the Google Groups 
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to