Thank you, that really helps! On Aug 4, 1:38 pm, Meikel Brandmeyer <m...@kotka.de> wrote: > Hi, > > On Aug 4, 2:32 am, Yang Dong <ydong.pub...@gmail.com> wrote: > > > Thank you! I have just another question not related about this topic: > > > ;during bootstrap we don't have destructuring let, loop or fn, will > > redefine later > > (def > > ^{:macro true > > :added "1.0"} > > let (fn* let [&form &env & decl] (cons 'let* decl))) > > > In Clojure 1.2.0, the preceding definition of let taks the strange > > argument of `&form' and `&env'. What are they? > > user=> (defmacro foo [x y] (prn &form) (prn &env) `(+ ~x ~y)) > #'user/foo > user=> (let [x 5] (foo x 6)) > (foo x 6) > {x #<LocalBinding clojure.lang.compiler$localbind...@13f991>} > 11 > > &form contains the form how the macro was called. &env contains local > bindings in the macro environment. (At least this is what my little > test shows...) These magic parameters are given to all parameters, but > usually hidden. It's probably safe to ignore them if you don't know > what they really do. > > Sincerely > Meikel
-- 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