Baishampayan! Thank you very much! Your explanation is best. At last I understand my gap in understanding of the situation.
Sincerely, Ru On 28 сен, 13:06, Baishampayan Ghose <b.gh...@gmail.com> wrote: > On Wed, Sep 28, 2011 at 2:27 PM, ru <soro...@oogis.ru> wrote: > > The documentation says that the macro function is called with the > > arguments unevaluated. So I write code for that function on that > > assumption. And when I run this code the arguments being evaluated. It > > does not matter why or how and when! They mustn't evaluated never in > > that case in accordance with the documentation! That is the question! > > Because the unevaluated arguments is an important feature that allows > > you to expand the language using macros. > > Let's put it this way - you misunderstood the documentation. What the > documentation says is correct and defmacro behaves as advertised. The > arguments are _never_ evaluated when they are _passed_ to the macro, > but that doesn't mean they can never be evaluated inside the macro no > matter what you do. > > In case of macros, the developer is (that is, you are) in charge of > _when_ do evaluate the arguments; and you did that when you typed in > ~e inside the `let` binding. It was your choice and none can do > anything about it. > > Regards, > BG > > -- > Baishampayan Ghose > b.ghose at 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 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