calling rest dosent give you nil it gives you an empty seq
so the if statment never fails
try
(defn my-zipmap [keys vals]
(loop [my-map {}
[kf & kr] (seq keys)
[vf & vr] (seq vals)]
(if (and kf vf)
(recur (assoc my-map kf vf) kr vr)
my-map)))
2010/6/6 Jon Seltzer <[email protected]>:
> I'm still learning Clojure and doing so by reading everything on
> clojure.org. I ran across this example in the Functional Programming
> section:
>
> (defn my-zipmap [keys vals]
> (loop [my-map {}
> my-keys (seq keys)
> my-vals (seq vals)]
> (if (and my-keys my-vals)
> (recur (assoc my-map (first my-keys) (first my-vals))
> (rest my-keys)
> (rest my-vals))
> my-map)))
>
> (my-zipmap [:a :b :c] [1 2 3])
>
> However, when run, it hangs.
>
> I'm running:
>
> OS: Windows Vista - Business Edition
> Java: 1.6.0_20
>
> If I had to guess, I'd say it's in an infinite loop, but not sure
> what's wrong exactly.
>
> --
> 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
--
------------------------------------------------
Nick: Korre
Email: [email protected]
------------------------------------------------
--
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