package and development documentation?




> -----Original Message-----
> From: maxima-bounces at math.utexas.edu [mailto:maxima-
> bounces at math.utexas.edu] On Behalf Of Robert Dodier
> Sent: Thursday, December 28, 2006 9:35 AM
> To: sen1 at math.msu.edu
> Cc: maxima at math.utexas.edu
> Subject: Re: [Maxima] package and development documentation?
> 
> Sheldon,
> 
> >    Is there any documentation on how to develop packages?
> >
> >    For instance, how does on use the command
> >    (in-package :maxima)
> 
> This is a general Lisp development question, and unfortunately there
> is no short answer. The only thing I can suggest is to find an
> introductory text for Lisp programming.
> 
> Be that as it may, Maxima doesn't use the Lisp package system
> very much (although that could change). In particular, Maxima
> packages don't necessarily correspond to Lisp packages.
> So the Lisp package system may not be an issue.
> 
> >    what does one have to do to ansi common lisp code to get it to work
> >    in maxima?

Maxima is written in ansi common lisp. You can call any lisp function, say
foo, from maxima by using the name ?foo.   You can call a lisp function that
begins with $,  say $foo,  by using the name foo in maxima.

> 
> I guess this must mean, how to modify a Lisp program to cope with
> Maxima objects (e.g. Maxima functions, Maxima matrices, etc).
> Unfortunately this doesn't have a short answer either.

You can look at any object in maxima, say xxx,  by typing to maxima

:lisp $xxx

And then you will see the lisp value. Your lisp program should take into
account the data structure you see there, if you expect it to run on maxima
data.
> 
> >    Can someone send me a list of functions are special to maxima,
> >     (e.g. mfuncall)

> 
> No such list exists to the best of my knowledge.

The main ones are meval mapply simplifya.  Anything else can be constructed
as a list and then handed to them as commands to be evaluated.

> 
> > and which need to
> >     be changed from some particular version of common lisp?

It would be surprising if you needed to know about this, in spite of the
huge number of messages on this mailing list concerning such issues. 

RJF