Argument evaluation



> Harald,
> 
> The observed results are consistent with the theory stated by
>  the current version of the Maxima documentation,
> 
>   `::=3D' defines a function (called a "macro" for historical reasons)
>   which quotes its arguments, and the expression which it returns
>   (called the "macro expansion") is evaluated in the context from
>   which the macro was called.  A macro function is otherwise
>   the same as an ordinary function.
> 
> (The text shown at http://maxima.sourceforge.net/docs/manual/en/maxima_5.ht=
> ml
> is up to date, or close to it.)
> 
> > (%i4) mytest1(foo);
> > (%o4)                        [[1, 2, 3], a, b, c]
> 
> Within mytest1, x is bound to 'foo.
> When mytest1 (foo) is evaluated, cons (foo, [a, b, c]) is
> evaluated, yielding [foo, a, b, c].

Ah! Ok, this is the answer to my question, I think:

> That is then evaluated in the context from which mytest1
> was called, yielding [[1, 2, 3], a, b, c].

I missed that after the macro expansion the result is evaluated.
I guess, i expected to get [foo, a, b, c]

> HTH

Yes, definitely.

Harald