Series is a library for operating on series, a data structure similar to a sequence. Unlike sequences, in most cases operations on series may be composed functionally but execute iteratively without generating intermediate values. So series offer both the expressiveness of functional programming and the efficiency of iterative programming.

Series is in Quicklisp:

 (ql:quickload :series)
 (in-package :series)

The library was originally developed by Richard C. Waters, and a description of it appeared in 1990 as Appendix A of the second edition of the book Common Lisp - The Language by Guy L. Steele. More docs and examples can be found in AIM 1082 and AIM 1083 from MIT.

The project is now maintained by Fernando D. Mato Mira. It has a git repo: git:// and an unofficial github mirror.

Series is available for SBCL, CMUCL, CLISP and some commercial Common Lisp implementations. It is distributed under the terms of the MIT license.


There are more user doc and links on the github mirror's wiki.

Related projects

See taps, a library that offers conveniences to work with Series (take, tail, any, contains?, drop, filter, …)



language extension