
eval - subsequent evaluation of special functions

Calling sequence:
eval(expr)

Parameter:

expr   --  expression

Summary:

eval works only on certain marked system functions that in some way return
unevaluated results.  If the call of such a system function occurs in the
argument of eval then the result of the function is subsequently re-evaluated.
For the evaluationthe substitution depthvalid at the time is used.

The referred system functions are the functions args, coeff , evalp , expr,
hold, input , last, lcoeff , nthcoeff , subs, subsex , subsop , tcoeff and
text2expr . They all return a result that is generally not completely evaluated.
Polynomial functions return a not completely evaluated result, if the argument
is a polynomial and the result an expression. See page ??.)

A further special case of the function eval is when the environment variable
EVAL_STMT  has the value FALSE. In this case eval forces the execution of
statements whose evaluation was prevented by the value of EVAL_STMT. eval
is a kernel function.

>>  a:=b: b:=c: text2expr("a+a"), eval(text2expr("a+a"));

      a+a, 2*c

>>  EVAL_STMT := FALSE: d:=(e:=f): d, e, eval(d), e;

       (e := f), e, f, f

See also:  args, coeff , evalp , expr, hold, input , last, lcoeff , nthcoeff ,
subs, subsex , subsop , tcoeff , text2expr , EVAL_STMT

