MathGroup Archive 2001

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

Search the Archive

Re: Re: scope all wrong? in Mathematica 4.1

  • To: mathgroup at smc.vnet.net
  • Subject: [mg31898] Re: [mg31847] Re: scope all wrong? in Mathematica 4.1
  • From: David Withoff <withoff at wolfram.com>
  • Date: Mon, 10 Dec 2001 06:14:40 -0500 (EST)
  • Sender: owner-wri-mathgroup at wolfram.com

> I have found a feature amongst your examples that came as a surprise: the
> way in which SetDelayed is evaluated.  ...  the rule is stored is as expected
> from the above, but it seems that after making later rules; some kind of
> evaluation is triggered, as though trying to evaluate the left sides using
> the other rules (the rules themselves are not altered). These evaluations
> may be due to working out the order in which to store or replace existing
> ones.

Yes.  I thought that this was already well-known, at least to people
interested in Mathematica trivia, which is about all that this really is.
It has nothing to do with any of the other issues raised in this discussion,
and is certainly not a fundamental feature of the programming language. The
current strategy for ordering rules involves some evaluations of parts of
previous rules.  This is essentially just a curiosity which is rarely
encountered and which has no known adverse effects in any practical examples.

> It seems to me that it would be better if these evaluations were done
> in private.

While it might be better to develop some other strategy for ordering
rules, as a practical matter there is no such thing as doing evaluations
in private, since evaluations can have irreversible effects.  For example,
one might consider what should happen if one of those evaluations loaded
a package, or updated the random number generator, or evaluated Quit[].

> However, the same kind of evaluations will occur when the rules
> are used, and any unwanted assignments can be avoided in both circumstances
> by suitable localisation of  symbols inside tests and conditions, though
> unwanted printing would still occur.

Exactly.  In other words, if those evaluations are a problem when
the rules are ordered then they is also a problem when the rules are
used, and the programmer will have to figure out a way to deal with that
regardless of whatever else happens.

Dave Withoff
Wolfram Research


  • Prev by Date: Re: Re: scope all wrong? in Mathematica 4.1
  • Next by Date: RE: Simple questions about Mathematica
  • Previous by thread: Re: Re: scope all wrong? in Mathematica 4.1
  • Next by thread: Re: Re: scope all wrong? in Mathematica 4.1