Re: set.lisp redefines POWERSET / {} for sets



> > (b) Yes, it is stupid to have multiple versions of powerset

Yes, there is redundancy and inconsistency within Maxima on things like
this.  Sometimes the same thing is done in different ways -- e.g. RZ's
M+ vs. my ADD vs. traditional (simplus (cons '(mplus)...)).  Sometimes
similar but slightly different things are done, and it is hard to tell
if the difference is actually necessary, or if one is simply an
improvement on the other.

Perhaps we should start with some sort of style guide for NEW code....

About using the CL package system, be aware that it affects not only
function names, but all symbols in a package.  That includes special
variables, names of get/put properties, expression constituents (MPLUS,
IRREDUCIBLE), etc.  So it is not enough to export just functions that
are used externally.  I suppose it would be a decent first
approximation, though, to make local any symbol which is only used in
only one file, and which is not named $xxx, %xxx, or ?xxx.


> if there are two different functions with the same name, we need also
a
> possibility to address them uniquely. packages probably can do this,
> can't they?)

packagename:symbolname

      -s