Re: "dereference" variable
- To: mathgroup at smc.vnet.net
- Subject: [mg82071] Re: [mg82033] "dereference" variable
- From: Todd Johnson <johnsong at ics.uci.edu>
- Date: Thu, 11 Oct 2007 00:20:27 -0400 (EDT)
- References: <200710100822.EAA26488@smc.vnet.net> <30346C40-5665-4B7C-B0FA-96E651F05229@jeol.com>
>> so that what L actually receives is a value like "s$123456". Q, on
>> the other hand, evaluates "s" entirely, and arrives at "20*k". You
>> may wonder, "but wait, that is what s evaluates to, why can't your
>> code deal with that?" The simplest answer is that sometimes
>> Mathematica seems to decide erroneously that the summation can be
>> turned into multiplication,
> It's not erroneous you need to follow the evaluation sequence,
> Mathematica does not operate the way languages like C or Java do, it
> uses a strict read eval loop, it reads an expression checks if there's
> a rule that can be used to evaluate it and continues doing so until
> there is nothing left to evaluate. For that matter the idea of
> references and passing by value or reference does not map well.
>> which leaves me with dummy variables from summations lying around
> What variables are unbound? I don't see any.
I'm sorry, I wasn't very clear. This was a very much stripped
down/faked-up version of the code which has these problems. This code
doesn't have any unbound variables because it's so simple. But sometimes
I'll write something like
and now the "i" in the iterator for the inner loop doesn't have any
Although, to be honest, I haven't seen an example of that behavior in a
while, so I can't draw up an example that displays it.
>> Also, this is a problem at other times, such as when there is an
>> appreciable difference between "x[[i]]-x[[i]]" and "0", because I
>> really mean "x[[i]]" to stand in for some vector of as-yet-unknown
>> length, so that it minus itself is a zero vector, which is different
>> from plain 0.
> Again you are fighting the evaluation sequence, if you don't want to
> evaluate x[[i]]-x[[i]] because you are going to define an evaluation
> rule for x later, you shouldn't evaluate that expression until the
> right time.
The goal of the bit of code I'm writing is to examine/modify/optimize
some code to be executed later, so it's not really an option to wait
until I have a value for x.
I tried that, and it works OK. But I lose a lot of Mathematica's
knowledge of the properties of Sum, which I would rather not do.
Thanks for your help. It seems pretty clear that what I want to do can't
be done, and I will just have to work around that.
Prev by Date:
Re: Re: rule based program for "Deleting repeated members of a list."
Next by Date:
Re: Re: How much memory is needed?
Previous by thread:
Next by thread:
Re: "dereference" variable