skip to main content
10.1145/1622123.1622138acmotherconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
research-article

User-extensible sequences in common Lisp

Published: 01 April 2007 Publication History

Abstract

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.

References

[1]
Bobrow, D. G. and Kiczales, G. (1988). The Common Lisp Object System Metaobject Kernel: A Status Report. In Lisp and Functional Programming, pages 309--315.
[2]
Franz Inc. (2006). Allegro CL version 8.0 documentation. http://tinyurl.com/3cfu66.
[3]
Gray, D. N. (1989). Issue STREAM-DEFINITION-BY-USER. Failed Issue, X3J13, ANSI. http://tinyurl.com/2d4csd.
[4]
Haible, B. (1988). The Abstract Datatype Sequence. Technical report, University of Karlsruhe. http://tinyurl.com/yy3eys.
[5]
Haible, B. (2006). personal communication.
[6]
Kelsey, R., Clinger, W., and Rees, J. (1998). Revised5 Report on the Algorithmic Language Scheme. Higher-Order and Symbolic Computation, 11(1).
[7]
Kiczales, G., des Rivières, J., and Bobrow, D. G. (1991). The Art of the Metaobject Protocol. MIT Press.
[8]
Kiczales, G., Lamping, J., Menhdhekar, A., Maeda, C., Lopes, C., Loingtier, J.-M., and Irwin, J. (1997). Aspect-Oriented Programming. In European Conference on Object-Oriented Programming, pages 220--242.
[9]
Miller, S. G. (2004). Collections. SRFI 44, schemers. org. http://srfi.schemers.org/srfi-44/srfi-44.html.
[10]
Newman, W. H. et al. (2000). SBCL User Manual. http://www.sbcl.org/manual/.
[11]
Norvig, P. (2002). Large-Scale Web Services, and the Programming Languages that Build Them. In International Lisp Conference Proceedings.
[12]
Pestov, S. (2006). Factor documentation. http://factorcode.org/responder/help/.
[13]
Pitman, K. and Chapman, K., editors (1994). Information Technology -- Programming Language -- Common Lisp. Number 226--1994 in INCITS. ANSI.
[14]
Pitman, K. M. (1991). Issue CONCATENATE-SEQUENCE. Issue 73, X3J13, ANSI. http://tinyurl.com/2zt4d6.
[15]
Rhodes, C. (2006). Revisiting CONCATENATE-SEQUENCE. Document 3, Common Lisp Document Repository. http://cdr.eurolisp.org/document/3.
[16]
Rhodes, C., Strandh, R., and Mastenbrook, B. (2005). Syntax Analysis in the Climacs Text Editor. In International Lisp Conference Proceedings.
[17]
Shalit, A. (1996). The Dylan Reference Manual. Addison-Wesley, Redwood City, CA, USA. http://www.opendylan.org/books/drm/Title.
[18]
Steele, Jr, G. L. (1990). Common Lisp: The Language. Digital Press, second edition.
[19]
Strandh, R., Villeneuve, M., and Moore, T. (2004). Flexi-chain: An editable sequence and its gap-buffer implementation. In European Lisp and Scheme Workshop. http://tinyurl.com/yhqwp3.
[20]
Yee, K.-P. and van Rossum, G. (2001). Iterators. PEP 234, Python Software Foundation, http://www.python.org/dev/peps/pep-0234/.

Cited By

View all
  • (2018)Recognizing heterogeneous sequences by rational type expressionProceedings of the 3rd ACM SIGPLAN International Workshop on Meta-Programming Techniques and Reflection10.1145/3281074.3281077(5-14)Online publication date: 5-Nov-2018
  • (2016)A modern implementation of the LOOP macroProceedings of the 9th European Lisp Symposium on European Lisp Symposium10.5555/3005729.3005735(49-55)Online publication date: 9-May-2016
  • (2016)Type-Checking of Heterogeneous Sequences in Common LispProceedings of the 9th European Lisp Symposium on European Lisp Symposium10.5555/3005729.3005731(13-20)Online publication date: 9-May-2016
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Other conferences
ILC '07: Proceedings of the 2007 International Lisp Conference
April 2007
187 pages
ISBN:9781595936189
DOI:10.1145/1622123
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

  • Association of Lisp Users

In-Cooperation

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 April 2007

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Research-article

Conference

ILC07
Sponsor:
ILC07: 2007 International Lisp Conference
April 1 - 4, 2007
Cambridge, United Kingdom

Acceptance Rates

Overall Acceptance Rate 18 of 26 submissions, 69%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)3
  • Downloads (Last 6 weeks)0
Reflects downloads up to 18 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2018)Recognizing heterogeneous sequences by rational type expressionProceedings of the 3rd ACM SIGPLAN International Workshop on Meta-Programming Techniques and Reflection10.1145/3281074.3281077(5-14)Online publication date: 5-Nov-2018
  • (2016)A modern implementation of the LOOP macroProceedings of the 9th European Lisp Symposium on European Lisp Symposium10.5555/3005729.3005735(49-55)Online publication date: 9-May-2016
  • (2016)Type-Checking of Heterogeneous Sequences in Common LispProceedings of the 9th European Lisp Symposium on European Lisp Symposium10.5555/3005729.3005731(13-20)Online publication date: 9-May-2016
  • (2008)SBCLSelf-Sustaining Systems10.1007/978-3-540-89275-5_5(74-86)Online publication date: 15-May-2008

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media