C,D labels



> Just to kick in my two cents worth, to me, a new user, the
> whole idea of assigning a result to a prompt seems rather strange.
> Is it really all that useful?

I am not sure what you mean by "assigning a result to a prompt".  Maxima
assigns a name to your input (and uses that name as the prompt), and to
the results of evaluating the input (and labels the output with its
name).  Do you just find it strange that it assigns a name to the
*inputs*, or both the inputs and the outputs?

Over the years, I have found both VERY useful, but especially the
outputs.  After all, the outputs may represent a significant amount of
computation time, and they *cannot* be re-entered by cutting and pasting
(unlike some other environments).  Even if they could (using
display2d:false and assuming some input conventions for Taylor series
etc.), that would lose some internal annotations.

As for the inputs, it is pretty common for me to try re-executing a
computation, after having re-set input variables or global variables or
whatever, by using ''C999.  This is especially useful when debugging
Maxima itself, but not only then.

Another useful thing about saving the inputs is that Maxima can
pretty-print them for you, which helps in finding errors sometimes, or
simply in showing them to others.  Unfortunately, Maxima's
pretty-printer could be better, but....

> After all, if you want to assign a result or an input to
> a variable for later use, you can

A very typical sequence of events for me (you may do things differently)
is:

 -- Enter problem (this should normally be assigned to a variable, yes)

 -- Try solving it using method A.  Fail.
 -- Try method B.  Fail.
 -- Try method C.  Succeed.

 -- Now try simplifying the result.
 -- Extract a piece of it.
 -- Try simplification A.  Fail.
 -- Try simplification B.  Partial success.
 -- Get a rough feeling for B by expanding it as a series at some point.
 -- Damn, too many parameters; let's look at it with B=0.
 -- Now that I've got a feel for its qualitative behavior, apply
transformation C.  Looks better, but not great.
 -- Try again from scratch using transformation D.  Fail.
 -- ...E.  Fail.
 -- Pick up the result of simplification C and try to improve it.
Succeed.
 -- Substitute back into full solution.
 -- Notice that this is not ideal.
 -- Try solution method D.
 -- Try again with the results of simplification B, but look at the
cases x>0 and x<0 separately.

etc. etc. etc.

In other words, I don't know in advance which results will be useful and
which will not -- most *might* be useful, and even if I abandon one line
of work temporarily, I may go back to it later.  Even in the days when
Maxima ran in 1 MB of memory, we found it useful to save results.
Nowadays, with basically unlimited memory, I see no reason at all to
throw away results.

> Seems like any convenience would be outweighed by the potential for
> confusion, as in Cn being common usage for constants.

This is just a problem with the current naming convention, and has
nothing to do with the general principle.  And as has been pointed out,
you can easily change the name, e.g. inchar:"%C".

> Not to mention that it's completely useless when you work as
> I have been, editing the Maxima source in a file, and then batching
it.

I think you are losing out on some of the possibilities of Maxima if you
do everything in batch mode, by the way.  But I suppose it depends on
the sort of problems you're working on.

I do STRONGLY believe we can improve on Maxima's interaction paradigm --
something better than both C1/D1 and workbooks -- but I am still working
on that....  In the meantime, I find C1/D1 extremely useful, and in fact
would like to see it in more of my computational environments....

      -s