Thanks for the responses. The let form is suitable enough as a
workaround.

The thing that really bothered me about this is because separation of
responsibilities breaks down somewhat.

Imagine I create a library of different println's for use in different
circumstances.

(defn fancy-println [] )
(defn fast-println [] )
(defn binary-println [] )
(defn memoized-println [] )
....

The user must beware when using these because:
(binding [println fast-println]
  do stuff... )

fast-println better not call the original println! Or else you get a
StackOverflowError.

And yet, the writer of the library shouldn't have to be aware that the
user *might* bind fast-println to println.
And the user of the library shouldn't have to be aware of the
implementation details of fast-println to want to bind println.

  -Patrick

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