Substituting a value for a differential function



Yes, please see my note from Thursday:

---------- Forwarded message ----------
From: Stavros Macrakis <macrakis at alum.mit.edu>
Date: Thu, Mar 29, 2012 at 17:29
Subject: Re: [Maxima] infinite loop
To: Leo Butler <l_butler at users.sourceforge.net>
Cc: maxima at math.utexas.edu


This is a misfeature (i.e. it is supposed to work this way, but it is a bad
idea) in the way function/array names are evaluated.  Unlike normal
evaluation in Maxima, they do 'infinite evaluation'.  A simple example:

x: 'y$
y: 'x$
x(1) => infinite loop
x[1] => infinite loop


      -s

Tested in

Maxima version: 5.26.0
Maxima build date: 13:32 1/18/2012
Host type: i686-apple-darwin11.2.0
Lisp implementation type: SBCL
Lisp implementation version: 1.0.52.0-11e4aa5


On Thu, Mar 29, 2012 at 15:16, Leo Butler <l_butler at users.sourceforge.net>
 wrote:

> The following leads to an infinite loop. Could someone explain why?
>
> f(x,y) := x(1)*y(2);
> f(y,x);
>
>
> --
> Leo Butler                <l_butler at users.sourceforge.net>
> SDF Public Access UNIX System -   http://sdf.lonestar.org
> _______________________________________________
> Maxima mailing list
> Maxima at math.utexas.edu
> http://www.math.utexas.edu/mailman/listinfo/maxima
>



On Sun, Apr 1, 2012 at 14:06, Robert Dodier <robert.dodier at gmail.com> wrote:

> On 3/28/12, Barton Willis <willisb at unk.edu> wrote:
>
> > Putative bug:
> >
> >    (%i1) (a : b, b : c, c : d)$
> >
> > Should be b[x], not d[x], I think:
> >
> >    (%i2) a[x];
> >    (%o2) d[x]
>
> Not a bug, but a misfeature; the code works as intended,
> but the intent is questionable.
>
> I looked into this, and there is a loop in MEVAL1 which reevaluates
> the name of the function. The code is pretty convoluted -- I'm guessing
> it could be simplified a lot.
>
> I don't know the motivation for reevaluating function names.
> It would be interesting to disable that somehow to find out what,
> if anything, in existing Maxima code (e.g. share) depends on it.
>
> best
>
> Robert Dodier
>