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

Reply via email to