I was thinking about how I might use the package system in linalg.
So, I tried the experiment:
MAXIMA> (defpackage :my (:use :common-lisp :maxima)
(:import-from :maxima #:add :maxima :mplus :maxima :simp))
MY> (add '$a '$b);
((MPLUS SIMP) $A $B)
(Q1) Is all this :import stuff really needed?
(Q2) Switching back to the 'maxima' package seems
like it will cause trouble:
MY> (setf q (add '$a '$b));
((MPLUS SIMP) $A $B)
MY> (in-package :maxima);
#<"MAXIMA" package>
MAXIMA> q
Maxima encountered a Lisp error:
Error in EVAL [or a callee]: The variable Q is unbound.
MAXIMA> my::q
((MPLUS SIMP) MY::$A MY::$B)
How could this be done? (A general scheme to change
my::<junk> --> <junk>.)
(Q3) Other advice -- perhaps a pointer to a good
tutorial on packages in CL?
Barton