Inconsistency when using previously defined variables as arguments to functions



On 02/01/2011 12:30 AM, Stavros Macrakis wrote:
> I don't know what a "Hold" statement is.
>
> To simplify an expression that was created with simp:false, you can 
> use simply
>
>       block([simp:true], expr )
>
> This avoids all the perverse semantics of 'ev'.
>
> If the expression has been simplified (or partially simplified) under 
> different conditions than the current conditions (e.g. different 
> assumptions, different global flags, etc.), you can do:
>
>          block([simp:true], expand(expr,0,0) )
>
> which forces Maxima to rescan the whole expression, including parts 
> that are already tagged as simplified.
>
>             -s

Hi!
Sorry for not explaining what I meant with "hold": I meant a command 
available in other CAS that is basically a way to enter an expression 
without evaluating or simplifying it. Since to my knowledge maxima 
doesn't have any such thing, so we emulate it by using simp:false as 
default and use ev(....., simp) every time we really do want to have 
somethign evaluated/simplified.

Is "ev" (and using simp:false) really that evil? (Like I said, I've yet 
to encounter any "perverse" semantics of it, so far it worked pretty well)?
(In any case, thank you for your suggestions and the tip with 'block' :)   )

Cheers

Thomas