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

Douglas Crosher dtc at scieneer.com
Thu Feb 15 10:24:40 CST 2007


Robert Dodier wrote:
> On 2/12/07, Douglas Crosher <dtc at scieneer.com> wrote:
> 
>> :lisp ($nounify '$abs) => %ABS
>> :lisp ($nounify 'mabs) => %MABS
>> :lisp ($nounify '|mabs|) => %abs
>>
>> On a lowercase or modern-mode lisp:
>> :lisp ($nounify 'mabs) => %abs
> 
>> From looking at $NOUNIFY in src/suprv1.lisp, it appears that
> an initial $ or letter M should be stripped off and replaced with %.
> I don't see a reason to think the test for M should be case-sensitive.
> So I'm inclined to think ($nounify 'mabs) => %MABS is unintended --
> should be %ABS, I'm pretty sure. Changing
> (member (car (setq y (explodec x))) '($ m) :test #'equal)
> to
> (member (car (setq y (explodec x))) '($ |m| |M|) :test #'equal)
> seems to fix it -- now ($nounify 'mabs) => %ABS .
> 
> Does the test against '($ |m| |M|) yield something sensible for
> case-sensitive Lisp?

Yes, such a test could be appropriate if this behavior is restored.
However adding a test for '|m| does break some existing code related to
'abs.  It does appear that other code has developed with this test
as-is so it may be best to just drop the test for 'M - this would
make the behavior consistent for the lower-case CL variants.

Regards
Douglas Crosher


More information about the Maxima mailing list