I suspect you're expecting ev(...,eval) to be equivalent to something like
eval(...). But (alas) that is not the definition of ev. Ev actually
creates a special evaluation environment for ... and evaluates it in a very
particular way. If you want the gory details of what's going on, read the
documentation of 'ev'.
But if you just want an eval function, try
eval(val) := ev(val, eval)$
(%i1) y:x1$
(%i2) d1y:x2$
(%i3) concat(d,1,y);
(%o3) d1x1
(%i4) concat(d,1,'y);
(%o4) d1y
(%i5) eval(val) := ev(val, eval)$
(%i6) eval(concat(d,1,'y));
(%o7) x2
Is that what you had in mind?
-s
On Thu, Sep 8, 2011 at 06:05, Christian <ChristianLupus at gmx.de> wrote:
> Hello everybody,
>
> it seems that my last mail has failed to reach this mailing list. So here
> agein:
>
> I do the following in maxima:
> First some initialisation...
> > y : x1$
> > d1y : x2$
> the following is clear.
> > concat(d,1,y)
> => d1x1
> the following is also clear.
> > concat(d,1,'y)
> => d1y
> now comes the problem
> > ev(concat(d,1,'y),eval)
> => d1x1
>
> How can I change the last command to get x2?
> Why does maxima first set x1 for y in, before the concat is evaluated?
>
> Thanks
> Christian
> _______________________________________________
> Maxima mailing list
> Maxima at math.utexas.edu
> http://www.math.utexas.edu/mailman/listinfo/maxima
>