It seems to me that maxima constp should return true for anything that
lisp considers a constant, plus anything that is declared by Maxima
to be a constant. Otherwise the list of pi, gamma, e, ...., is subject
to repeated emendation.
I suggest that anyone who wants to use strings as part of an algebraic
expression is in error.
Look at the use of strings in other languages. Can you do arithmetic
with them? why should Maxima do arithmetic with them?
Passing around strings for use as, say, titles, makes some sense.
Also, doing string-based transformations (as, regular expression search)
may make sense, but that is a different domain
from algebraic trees. There are even string polynomials in Knuth, Art
of Computer Programming. Again, quite a different
thing. Even though there are string GCDs.
Do we want to allow arithmetic on file descriptors? On "ink"? (used in
handwriting recognition). To mention only 2
of the umpteen varieties possible.
I have not seen a reason why using variable names (which can be
arbitrary strings) is inadequate to solve this particular problem.
Using strings for string stuff is fine. What is cos(string) etc ever
going to mean?
(Grump.)
RJF