Q: nounify symbols with a 'm prefix ?



For mathematical functions such as abs, sin, "+", etc., we recently
discussed this, and if I'm not mistaken, we all agree that the noun form and
the verb form should be identical: there is no useful functionality attached
to the difference.  So we should have 'abs = nounify('abs) = verbify('abs) =
?mabs.

Things get messier when you start looking at things like op("abs"(x)).  In
the current system, we have:

?print([str:"abs",sym:abs,op:op('(abs(x))),opq:op('abs(x)),
        nounify(str),nounify(sym),nounify(op),nounify(opq),
        verbify(str),verbify(sym),verbify(op),verbify(opq)]) =>

       ((MLIST SIMP) &ABS MABS MABS %MABS |%abs| %MABS
                     %MABS %MABS |$abs| MABS MABS MABS)

In tabular form:

        String  Symbol  Op      QuoteOp
        &ABS    MABS    MABS    %MABS
Nounify |%abs|  %MABS   %MABS   %MABS
Verbify |$abs|  MABS    MABS    MABS

Compare:

        String  Symbol  Op      QuoteOp
        &SIN    %SIN    %SIN    %SIN
Nounify |%sin|  %SIN    %SIN    %SIN
Verbify |$sin|  $SIN    $SIN    $SIN

        String  Symbol  Op      QuoteOp
        &+      ---     &+      %MPLUS
Nounify %MPLUS  ---     %MPLUS  %MPLUS
Verbify MPLUS   ---     MPLUS   MPLUS

        String  Symbol  Op      QuoteOp
        &DIFF   $DIFF   $DIFF   %DERIV
Nounify |%diff| %DERIV  %DERIV  %DERIV
Verbify |$diff| $DIFF   $DIFF   $DIFF
        (%DERIVATIVE is used for %DIFF -- don't ask)

Abstracting and merging the tables (x represents lower-case):

         String       Symbol        Op            QuoteOp
        AbsSin + Dif  AbsSin + Dif  AbsSin + Dif  AbsSin + Dif
        &  &  &  &     M %  -  $     M %  &  $    %M %  %M %
Nounify %x %x %M %x   %M %  -  %    %M %  %M %    %M %  %M %
Verbify $x $x  M $x    M $  -  $     M $   M $     M $   M $

In the current system (5.11 on GCL), nounify('abs)=?%MABS and
verbify('abs)=?MABS. As far as I know, Maxima never uses ?%ABS, and ?$ABS is
only generated by op("abs"(x)), which is not related to the abs function at
all: only for operators like "+" which cannot be written without the quotes
does Maxima convert strings in a special way.

Enough for now....

          -s