Skip to content

DavidAlphaFox/fset

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

346 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FSet: Functional Collections for Common Lisp

FSet is a functional, set-theoretic collections library for Common Lisp. Functional means that all update operations return a new collection rather than modifying an existing one in place. Don't be frightened by the term set-theoretic! It just means that collections have clean semantics, and may be nested arbitrarily with no additional programmer effort — for instance, sets may contain sets, maps may be keyed by sets, etc.

FSet is designed to be an excellent default choice for collections in Common Lisp programs: you can use them in practically all cases where you need a collection. It has a wide API, with sets, maps, bags, seqs (sequences), binary relations, tuples, and more; and lots of useful operations on these types.

NEW! My e-book, Modern Common Lisp with FSet, is now live! It has a tutorial, lots of explanatory material, an API reference, and some examples.

The FSet home page has links to relevant blog posts, and other info.

There might be some useful information on the FSet CLiki page.

FSet is installable via Quicklisp:

> (ql:quickload "fset")

I occasionally post FSet news to my blog.

Supported Common Lisp implementations

  • SBCL (tested on 2.6.0)
  • Clozure CL (tested on 1.13)
  • ABCL (tested on 1.9.2)
  • Franz Allegro (tested on 11.0)
  • LispWorks (tested on 8.0.1)
  • ECL (tested on 26.3.27)

CLASP support is waiting on a fix for CLASP bug 1731.

About

FSet, the functional collections library for Common Lisp.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • Common Lisp 100.0%