On Thu, Dec 9, 2010 at 10:50 PM, Alex Baranosky
<alexander.barano...@gmail.com> wrote:

>   (map (fn [dest] (dist-in-miles origin dest)) locations))

> It seems the stubbing is not happening when (distances "Boston,MA"
> "Albany,NY" "LosAngeles,CA") is being evaluated.  But if I put print
> statements in the function to see the value of dist-in-miles, it is clearly
> 2.0!

Perhaps you're being bitten by laziness. The value of dist-in-miles is
set to 2.0 for the duration of your test, then it reverts to something
else, *then* the (map ...) produced seq is being realized and using
the reverted value. If you put the print in "distances" it's printing
the 2.0 and then creating and returning the unrealized lazy seq, which
isn't realized until after the value reverts.

Laziness and temporary bindings mix like oil and water, unfortunately.

If you don't really need laziness, wrap a (doall ...) around the (map
...) in distances and see if that fixes it.

-- 
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

Reply via email to