"Delayed" problem in mfunction/mmacro definition



----- Original Message ----- 
From: "Albert Reiner" <areiner at tph>
To: "Siver Andrey" <siver@sirius.ihep.su>
Cc: "Maxima-List" <maxima@math.utexas.edu>
Sent: Monday, November 15, 2004 6:28 PM
Subject: Re: [Maxima] "Delayed" problem in mfunction/mmacro definition


> ["Siver Andrey" <siver@sirius.ihep.su>, Mon, 15 Nov 2004 11:52:36 +0300]:
> ...
> Does this help you?

Yes, it does. Thanks.

> I do not know how to make things work exactly as in Mathematica, but
> there may be some way - maybe with simplification rules?  Anyway,
> evaluation is very different in both systems as Mathematica aspires to
> do "infinite" evaluation, i.e., it looks for something that looks like
> a fixed point; Maxima only evaluates things once, which means that
> quoting plays the role of both Hold and Unevaluated.

I know this. My task is to try to make something like Mathematica-machine as
MAXIMA package. "parser.lisp" of MockMMa contains functions (such as 'p')
which translate Mathematica notation of the expressions into Lisp notation:

(%i1) :lisp(load "e:/siver/mma1.6/parser-1.lisp")
T
(%i1) :lisp(p)
f[x_]=x
=>(SET (F (PATTERN X (BLANK))) X)

So, problem is to interpret the list in term of MAXIMA objects.

> > How to see what exactly the expressions does MAXIMA keep for a symbol or
a
> > function?
>
> To *really* see that, use the underlying Lisp system's describe:
>
> The closest to ?? in Mathematica, which shows you Up-, Down-, Sub-,
> OwnValues, Attributes, rewrite rules etc.
> that I know of is to use
> fundef and to look at the properties.

And what about MAXIMA functions?



Andrey