Skip to content
This repository was archived by the owner on Feb 27, 2026. It is now read-only.
 
 

Latest commit

 

History

288 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Fset's original repo no longer has an issue with safety set to 3 in sbcl - thus, this repo no longer has a purpose.

Why this fork?

This fork exists because fset fails on sbcl when safety is set to 3 - see this discussion. As suggested by fset's author, Code/port.lisp has been modified, so that hash-mix/hash-unmix/hash-multiply use the generic branch in sbcl, i.e., the branch that uses XOR instead of addition. It currently passes the following:

rm -rf ~/.cache/common-lisp ; sbcl --non-interactive --eval "(progn (sb-ext:restrict-compiler-policy 'safety 3) (ql:quickload :FSet) (asdf:test-system :FSet))"

Introduction

FSet is a functional set-theoretic collections library. Functional means that all update operations return a new collection rather than modifying an existing one in place. Set-theoretic means that collections may be nested arbitrarily with no additional programmer effort; for instance, sets may contain sets, maps may be keyed by sets, etc.

The FSet home page has an introduction and tutorial.

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.

About

FSet, the functional collections library for Common Lisp.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages