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