function parameters



Rich,

ev is certainly handy on the command line for things like

     %o23, a=3, diff, exponentialize, factor

i.e.

     ev(%o23, a=3, diff, exponentialize, factor)

Even in the command-line case, there are lots of surprising weirdnesses
(which I've documented over the years on this mailing list, and won't
rehash), but at least in interactive use, the user has some chance to see
that things went wrong, and can then fix them.

However, in programmatic use, the user does not get immediate feedback, and
things often go wrong.  I saw users struggling with these problems 39 years
ago, and I see users struggling with these problems today, as we see with
the frequent mailing-list queries.  You suggest improving the
documentation.  But the documentation of ev is actually quite clear -- alas,
'ev' is defined in such a way that you can't really document it
conceptually, but have to document it operationally (first do this, then do
that).  Until the definition changes, the documentation can only be improved
a little bit.

The fact that people agonized over this design 45 years ago, and that it is
still in the system does *not* indicate that it is a good design.  We should
benefit from the experience of 45 years, and improve the system.

As a concrete way forward, I would suggest the following:

1) For each case where ev provides functionality that is not available in
other ways (let's use ev(...,eval) as an example), define a new function
with simple, clean semantics.
2) When that is done, update the documentation of ev to indicate that
ev(...,eval) is deprecated and that eval(...) is recommended instead.
3) Study and discuss the use of ev in general (including the ones now
available through separate functions) and propose a clean redesign so that
things like "%o23, a=3, diff, exponentialize, factor" on the command line
mostly work the same way, but getting rid of the weirdness.  Define a new
function, say evv, which works this way.
4) After some experience with evv, switch over to it as the mechanism for
the "," syntax on the command line, and document all of ev as deprecated.
5) Inevitably, some users will prefer the old ev.  Give them a flag (yuck)
so that the "," syntax continues to use ev rather than evv.

              -s

On Wed, Apr 21, 2010 at 13:17, Richard Fateman <fateman at cs.berkeley.edu>wrote:

> The point of ev  is to provide a functionality where a whole bunch of
> things get done at
> the same time.  It's pretty clear that people agonized over this.
>
> If you decide that you don't want to use this, that's OK. That's not a good
> enough reason to retire
> a facility that has been around for about 45 years.
>
> I think the documentation in the Maxima manual could be improved. What else
> is
> new..
>
> RJF
>
>
> _______________________________________________
> Maxima mailing list
> Maxima at math.utexas.edu
> http://www.math.utexas.edu/mailman/listinfo/maxima
>