(chibi iset constructors)

(iset . args)

Create a new iset composed of each of the integers in args.

(list->iset! ls iset)

Returns an iset with all integers in the list ls added to iset, possibly mutating iset in the process.

(list->iset ls . opt)

Returns an iset with all integers in the list ls. If the optional argument iset is provided, also includes all elements in iset, leaving iset unchanged.

(iset->node-list a)

(iset-copy iset)

Returns a new copy of iset.

(iset-copy-node iset)

(iset-max-end iset)

(iset-insert-left! iset new)

(iset-insert-right! iset new)

(iset-squash-bits! iset)

(iset-adjoin! iset . ls)

Returns an iset with the integers in ls added to iset, possibly mutating iset in the process.

(iset-adjoin iset . ls)

Returns an iset with the integers in ls added to iset, without changing iset.

(%iset-delete1! iset n)

(iset-delete! iset . args)

Returns an iset with the integers in ls removed (if present) from iset, possibly mutating iset in the process.

(iset-delete iset . args)

Returns an iset with the integers in ls removed (if present) from iset, without changing iset.

(iset-map proc iset)

Returns an iset composed of the integers resulting from applying proc to every element of iset.

(iset-union2! a b)

(iset-union! [a b . args])

(iset-union . args)

Returns an iset containing all integers which occur in any of the isets args. If no args are present returns an empty iset.

(iset-intersection! a . args)

(iset-intersection a . args)

Returns an iset containing all integers which occur in a and every of the isets args. If no args are present returns a.

(iset-difference2! a b)

(iset-difference! a . args)

Returns an iset containing all integers which occur in a, but removing those which occur in any of the isets args. If no args are present returns a. May mutate a.

(iset-difference a . args)

As above but doesn't change a.