Richard Fateman <fateman at eecs.berkeley.edu> wrote:
defstruct stuff usually does not use lists, unless you specify that.
It uses some kind
of packed array-ish thing.
The important thing defstruct and defclass provide is the addition of a
class to the class lattice upon which method discrimination (and
subclass testing) can be done. The issues of representaton and slot
access are mere details.
It is an interesting question whether, had generic functions and a
discriminable and extensible class lattice existed in Lisp 40+ years
ago, whether this would have been useful to the internal protocols of
Ma[xi,csy]ma because each subexpression could be minutely subclassed
about all it's internal propertes. That question is arguably still
intellectually interesting, but alas any answer to that question is not
relevant to current work on Maxima.