repository for contrib



It sounds like you are writing a tutorial on programming in Maxima.

Some of what you are describing may just be a question of re-documentation.
Doesn't  "append"  join two lists together?

There is extensive documentation, on-line, for the commercial Macsyma. It
seems no one looks at that (not all of it relevant...) even though in some
cases it is better than the maxima documentation.

I suspect that some of the helpful programs you might provide are exercises
in week 2 or 3 of an introductory course using Scheme or Lisp, as we have
here in CS61a, or MIT has in course 6.001.  This is not to say that the
programs are not useful -- just that they may emerge as natural consequences
of thinking in a functional programming language.

For example, consider filter:

filter(l,pred):= if (l=[]) then [] else if pred(first(l)) then
cons(first(l),filter(rest(l),pred)) else filter(rest(l),pred);

if you define q:[a,b,c,1,2,d,e,3]

then filter(q,numberp)  returns the list [1,2,3]
and  filter(q, lambda([n],not(numberp(n))))    returns [a,b,c,d,e]

This is not to say programs like filter are totally obvious, especially if
recursion is unnatural for you...

A source of ideas for (usually trivial) programs might be to look at the
programming features of Maple or Mathematica, and see what is appealing.
Most list-processing kinds of things can be done in a line or two of maxima.

Oh, also it might be better, in some cases, to take the maxima-language
program and rewrite it in lisp to be faster, make less intensive use of
memory or stack, or maybe do more error checking.  Leaving the maxima
language as documentation might be nice.

I encourage you to work on this and of course get feedback from people on
this mailing list.

RJF

 

> -----Original Message-----
> From: maxima-admin at math.utexas.edu 
> [mailto:maxima-admin at math.utexas.edu] On Behalf Of sen1 at math.msu.edu
> Sent: Friday, August 04, 2006 6:10 AM
> To: maxima at math.utexas.edu
> Subject: repository for contrib
> 
> Hello,
>   Where and how does one submit contributions of scripts and programs?
> 
> I don't mean programs which should be included with the distribution.
> 
> Also, for various reasons, I am trying to use "maxima" as a 
> general useful tool.  I find that there are many things 
> lacking. So, bit by bit, I am writing little useful scripts.
> 
> For instance, just to give two examples, I have scripts to
> 
>   join two lists together
>   extract the sublist of zero (or nonzero) elements of a 
> numerical list
> 
> These are easy and straightforward.  It may be that they 
> exist in maxima already, but I have not found them.
> 
> It seems clear that many users are doing similar things.
> 
> I would like to see a searchable repository of user-created 
> tools, or, if you will, a repository of "cookbook" maxima tools.
> 
> If something like this already exists, please let me know.
> 
> If not, perhaps the current maintainers would consider 
> setting up such a repository (as a list or accessible 
> directory, or something).
> 
> Thanks,
>   -sen
> 
> 
> 
> 
> 
> 
> --
>   
> --------------------------------------------------------------
> -------------
>   | Sheldon E. Newhouse            |    e-mail: 
> sen1 at math.msu.edu           |
>   | Mathematics Department         |       			
> 	   |
>   | Michigan State University      | telephone: 517-355-9684  
>               |
>   | E. Lansing, MI 48824-1027 USA  |       FAX: 517-432-1562  
>               |
>   
> --------------------------------------------------------------
> -------------
> 
> _______________________________________________
> Maxima mailing list
> Maxima at math.utexas.edu
> http://www.math.utexas.edu/mailman/listinfo/maxima
>