MathGroup Archive 2011

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: evaluation-- one or many levels, your thoughts?

  • To: mathgroup at
  • Subject: [mg116940] Re: evaluation-- one or many levels, your thoughts?
  • From: DrMajorBob <btreat1 at>
  • Date: Sat, 5 Mar 2011 06:05:45 -0500 (EST)




On Fri, 04 Mar 2011 02:39:00 -0600, Richard Fateman  
<fateman at> wrote:

> How often do you require the behavior that an expression
> is evaluated until it stops changing, rather than evaluated
> "once"?
> Difference in behavior..
> once
> x1=x2
> x2=x3
> x1  evaluates to x2
> "infinite" evaluation until stops changing..
> x1 evaluates to x3.
> Note that with "once" evaluation,
> x=x+1    sets x  to  "x+1"
> not "recursion depth exceeded".
> You may not have a clear idea of the answer to this question, since
> conventionally Mathematica evaluates "as far as possible", and
> you may not, therefore, have an idea of whether your programs
> would still work under the "once" model.
> I invite you to think about this, and whether another model
> might work for you.  I think that the evaluate once model is
> less onerous for the implementor, and might speed up your
> computing.  Given the "once" model, one can easily write
> "evaluate until no change".  The reverse emulation is
> much harder, as far as I can tell.  The complexity of
> non-evaluation in Mathematica includes, among other operators,
> Hold, Holdform, Defer, HoldAll, HoldFirst, HoldRest, Evaluate,
> Unevaluated, ReleaseHold, HoldComplete, HoldPattern, HoldAllComplete,
> SequenceHold, Update, NHoldAll, NHoldFirst, NHoldRest, With, Extract..
> Some languages make do with about 2 constructs, a mechanism to
> protect from evaluation (quoting)  and some way of re-evaluating.
> Some time ago I wrote a paper on this topic,
> but some recent
> programming that I was doing suggested to me that Mathematica
> was probably doing considerable unnecessary work checking for
> something that never happened. (That is, after the 1st evaluation,
> nothing ever changed again.)  This is kind of conventional in
> ordering programming languages, and that's all I seemed to expect
> as I was writing. The choice between 0 ("Hold") and "perhaps many"
>   defaults to "perhaps many", which in practice was "just once".

DrMajorBob at

  • Prev by Date: Re: player pro and notebooks
  • Next by Date: Re: Select from Tuplet using logical expression
  • Previous by thread: Re: evaluation-- one or many levels, your thoughts?
  • Next by thread: Re: evaluation-- one or many levels, your thoughts?