attempting to find Maxima operators which are also Lisp macros
Subject: attempting to find Maxima operators which are also Lisp macros
From: Robert Dodier
Date: Sat, 13 Aug 2005 11:45:02 -0600
Hello,
I'm trying to determine which Maxima operators are also Lisp macros.
So far I have found ":" (more specifically MSETQ which is returned by
(GETOPR '&\:)) and lambda (more specifically LAMBDA, not $LAMBDA)
are Lisp macros.
(DO-SYMBOLS (S "MAXIMA") (IF (MACRO-FUNCTION S) (FORMAT T "~S~%" S)))
turns up a lot of stuff, but most, maybe all of them are symbols that
are not associated with Maxima functions or operators.
Restricting the search to symbols which begin with $ identifies
$SSTATUS and $MDEFVAR.
A brute force approach (grepping for DEF-NUD and DEF-LED
in nparse.lisp and attempting apply ("foo", [foo]) on each one)
identifies ":" and nothing else. For the record the operators tested were:
<= < = >= > - , ; := : ::= :: ! .) [ ] $ * && #
+ !! ' '' ( [ ^ + and do else elseif for from
if next not or step then thru unless while
Is there a way to determine if a Maxima function or operator
is associated with a symbol that is a Lisp macro?
Thanks for any advice --
Robert Dodier