Chapter 8
Collections
Defining a New Collection Class
Every collection class must provide an implementation of the iteration
protocol. A method on forward-iteration-protocol
is
required. A method on backward-iteration-protocol
is optional.
Every collection must provide or inherit methods
for element
and key-test
. If
the collection is also a <mutable-collection>
, it must
provide or inherit a method for element-setter
. A collection
that is not a <mutable-collection>
must provide an implementation
of type-for-copy
.
Individual collection classes may impose further requirements on their subclasses. For
example, concrete subclasses of <table>
must provide or inherit a method
for table-protocol
.
For efficiency, it may be desirable to provide specialized implementations for certain
generic functions. Collections that can implement functions such as size
or member?
more efficiently should do so. Sequences that can reuse storage to
implement functions such as reverse!
and sort!
should do
so.