> (defn fzipmap [f col]
> "Takes a col, applies f to each element and generates a
Note that the args should have come after the doc string!
On Tue, Aug 25, 2009 at 6:20 AM, Adrian
Cuthbertson wrote:
> For completeness we should include a loop/recur pattern;
>
> (defn fzipmap [f col]
> "Takes a
For completeness we should include a loop/recur pattern;
(defn fzipmap [f col]
"Takes a col, applies f to each element and generates a
hash map keyed on each element of col."
(loop [col (seq col) mp {}]
(if col (recur (next col) (assoc mp (first col) (f (first col
mp)))
user=
Wonderful; I totally didn't know about zipmap. I've been using into
and map this whole time. Was it added right before Clojure 1.0? It
seems to be a lot faster than using into:
Clojure 1.0.0-
user=> (time (into {} (for [i [1 2 3]] [i (+ 3 i)])) )
"Elapsed time: 0.705 msecs"
{3 6, 2 5, 1 4}
user=>
(zipmap coll1 coll2) should be faster than (apply hash-map (interleave
coll1 coll2)) and the doc description hints that's what it was made
for.
On Aug 24, 8:25 am, Garth Sheldon-Coulson wrote:
> Welcome again.
>
> Here's another way. Not sure if it's any more or less efficient, but it's
> the wa
On Aug 23, 5:21 pm, Stan Dyck wrote:
> I'm still new to this so bear with me.
>
> I'm trying to apply a function to a seq-able thing to produce a hashmap. So
> for instance say the function is (inc 3).
> I'd like to write a function that does
>
> [1 2 3] --> {1 4, 2 5, 3 6}
>
> Can someone help
Welcome again.
Here's another way. Not sure if it's any more or less efficient, but it's
the way my brain works.
=> (defn map-hashmap [coll f]
(apply hash-map (interleave coll (map f coll
#'user/map-hashmap
=> (map-hashmap [1 2 3] #(+ % 3))
{1 4, 2 5, 3 6}
On Mon, Aug 24, 2009 at 2:1
(def a [1 2 3])
; zipmap takes two collections and makes a hash-map
user=> (zipmap a (map #(+ 3 %) a))
{3 6, 2 5, 1 4}
; another way is to build up a map starting with empty {} and
associating key values
user=> (reduce #(assoc %1 %2 (+ 3 %2)) {} a)
{3 6, 2 5, 1 4}
; hash-map constructs a map fo
On Aug 23, 2009, at 8:21 PM, Stan Dyck wrote:
I'm still new to this so bear with me.
Welcome.
I'm trying to apply a function to a seq-able thing to produce a
hashmap. So for instance say the function is (inc 3).
I'd like to write a function that does
[1 2 3] --> {1 4, 2 5, 3 6}
Can some
I'm still new to this so bear with me.
I'm trying to apply a function to a seq-able thing to produce a hashmap. So for
instance say the function is (inc 3).
I'd like to write a function that does
[1 2 3] --> {1 4, 2 5, 3 6}
Can someone help me?
StanD.
--~--~-~--~~~--