On Fri, Feb 27, 2009 at 2:30 PM, Mark Volkmann <r.mark.volkm...@gmail.com> wrote: > > On Fri, Feb 27, 2009 at 4:34 AM, Michael Wood <esiot...@gmail.com> wrote: [...] >> Bindings created with binding can be assigned to, which provides a >> means for nested contexts to communicate with code before it _in_ the call >> stack. [...] > > The word "before" is what seems out of place to me. The typically use > of binding that I've seen is for binding a different value to a Var > for the duration of the binding scope which includes calls that occur > *after* the binding keyword, but in its scope. For example, println > normally writes to stdout, but you can changes that for a limited > scope with binding. [...]
I actually didn't think too hard about that before your e-mail :) but I think "before" is right. Jason's example demonstrates what this means: user> (def x) #'user/x user> (defn foo [] (set! x 10)) #'user/foo user> (binding [x 1] ; first binding form [x (binding [x 2] ; second binding form [x (do (foo) x)]) x]) [1 [2 10] 1] The second binding form is "before" foo in the call stack, yet foo can influence it by calling (set! x 10). I'm not sure if doing this sort of thing is a good idea, though. While reading the description again I noticed a grammatical error. I believe it should be: Bindings created with binding can be assigned to, which provides a means for a nested context to communicate with code before it in the call stack. i.e. "a ... context ... before it" rather than "contexts ... before it" -- Michael Wood <esiot...@gmail.com> --~--~---------~--~----~------------~-------~--~----~ 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 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 -~----------~----~----~----~------~----~------~--~---