repository for contrib



Sheldon,

In my experience, any unedited collection of "tips and tricks" quickly
becomes hard to use and tends to have extremely uneven quality.  I
would rather concentrate on improving the "contrib" area which *does*
get distributed and also improve the tutorial and reference
documentation so that existing features are used more effectively.  It
is also important, I think, to define general-purpose rather than
special-purpose routines.

But if you do want to start a collection of your programs, you could
add them to the Maxima wiki at http://maxima.sourceforge.net/wiki/ .

As for your particular examples:

For 'joining' two lists, it depends what you mean by 'list' and by
'join'.  Some examples:
    append( [a,b], [a,d] ) => [a,b,a,d]
    union( {a,b}, {a,d} ) => {a,b,d}
    intersect( {a,b}, {a,d}) => {a}
    map("[",[a,b],[a,d]) => [[a,a],[b,d]]
    setify( [a,b,a] ) => {a,b}                  -- make a set from a list
    cartesian_product({a,b},{a,d}) => {[a, a], [a, d], [b, a], [b, d]}
    join([a,b], [a,d]) => [a,a,b,d]
         -- not sure why this is useful, nor why it is called 'join'

To extract sublist of zero (or nonzero) elements of a numerical list,
I would first define a general-purpose filter function.  But don't we
already have one...?  I know there was discussion about it.

       -s