User-extensible sequences in Common Lisp
- Added on 2023-08-22
- Page: https://research.gold.ac.uk/id/eprint/2344/1/sequences-20070301.pdf
- See on Internet Archive
- #lisp #sequence
Common Lisp is often touted as the programmable programming language, yet it sometimes places large barriers in the way, with the best of intentions. One of those barriers is a limit to the extensibility by the user of certain core language constructs, such as the ability to define subclasses of built in classes usable with standard functions: even where this could be achievable with minimal penalties. We introduce the notion of user-extensible sequences, describing a protocol which implementations of such classes should follow. We show examples of their use, and discuss the issues observed in providing support for this protocol in a Common Lisp, including ensuring that there is no performance impact from its inclusion.