# [Maxima] Q: nounify symbols with a 'm prefix ?

Stavros Macrakis macrakis at alum.mit.edu
Wed Feb 14 08:40:46 CST 2007

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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.math.utexas.edu/pipermail/maxima/attachments/20070214/8e8a5146/attachment.htm