cyclone/docs/api/srfi/113.md
Justin Ethier 7ba1b6e2d9 WIP
2016-11-30 18:14:18 -05:00

246 lines
4.4 KiB
Markdown

# SRFI 113 - Sets and bags
Sets and bags (also known as multisets) are unordered collections that can contain any Scheme object. Sets enforce the constraint that no two elements can be the same in the sense of the set's associated equality predicate; bags do not.
See the [SRFI document](http://srfi.schemers.org/srfi-113/srfi-113.html) for more information.
# Index
- Constructors:
[`set `](#set)
[`set-unfold `](#set-unfold)
[`set-contains? `](#set-contains)
[`bag`](#bag)
[`bag-unfold`](#bag-unfold)
[`bag-contains? `](#bag-contains)
- Predicates:
[`set? `](#set-1)
[`set-empty? `](#set-empty)
[`set-disjoint?`](#set-disjoint)
[`bag? `](#bag-1)
[`bag-empty? `](#bag-empty)
[`bag-disjoint?`](#bag-disjoint)
- Accessors:
[`set-member `](#set-member)
[`set-element-comparator`](#set-element-comparator)
[`bag-member `](#bag-member)
[`bag-element-comparator`](#bag-element-comparator)
- Updaters:
[`set-adjoin `](#set-adjoin)
[`set-adjoin! `](#set-adjoin-1)
[`set-replace `](#set-replace)
[`set-replace! `](#set-replace-1)
[`set-delete `](#set-delete)
[`set-delete! `](#set-delete-1)
[`set-delete-all `](#set-delete-all)
[`set-delete-all! `](#set-delete-all-1)
[`set-search! `](#set-search)
[`bag-adjoin `](#bag-adjoin)
[`bag-adjoin! `](#bag-adjoin-1)
[`bag-replace `](#bag-replace)
[`bag-replace! `](#bag-replace-1)
[`bag-delete `](#bag-delete)
[`bag-delete! `](#bag-delete-1)
[`bag-delete-all `](#bag-delete-all)
[`bag-delete-all! `](#bag-delete-all-1)
[`bag-search! `](#bag-search)
- The whole set:
[`set-size `](#set-size)
[`set-find `](#set-find)
[`set-count `](#set-count)
[`set-any? `](#set-any)
[`set-every?`](#set-every)
[`bag-size `](#bag-size)
[`bag-find `](#bag-find)
[`bag-count `](#bag-count)
[`bag-any? `](#bag-any)
[`bag-every?`](#bag-every)
- Mapping and folding:
[`set-map `](#set-map)
[`set-for-each `](#set-for-each)
[`set-fold `](#set-fold)
[`set-filter `](#set-filter)
[`set-filter! `](#set-filter-1)
[`set-remove `](#set-remove)
[`set-remove! `](#set-remove-1)
[`set-partition `](#set-partition)
[`set-partition!`](#set-partition-1)
[`bag-map `](#bag-map)
[`bag-for-each `](#bag-for-each)
[`bag-fold `](#bag-fold)
[`bag-filter `](#bag-filter)
[`bag-filter! `](#bag-filter-1)
[`bag-remove `](#bag-remove)
[`bag-remove! `](#bag-remove-1)
[`bag-partition `](#bag-partition)
[`bag-partition!`](#bag-partition-)
- Copying and conversion:
[`set-copy `](#set-copy)
[`set->list `](#set->list)
[`list->set `](#list->set)
[`list->set!`](#list->set-1)
[`bag-copy `](#bag-copy)
[`bag->list `](#bag->list)
[`list->bag `](#list->bag)
[`list->bag!`](#list->bag-1)
- Subsets:
set=?
set<?
set>?
set<=?
set>=?
bag=?
bag<?
bag>?
bag<=?
bag>=?
- Set theory operations:
set-union
set-intersection
set-difference
set-xor
set-union!
set-intersection!
set-difference!
set-xor!
bag-union
bag-intersection
bag-difference
bag-xor
bag-union!
bag-intersection!
bag-difference!
bag-xor!
- Additional bag procedures:
bag-sum bag-sum! bag-product bag-product!
bag-unique-size bag-element-count bag-for-each-unique bag-fold-unique
bag-increment! bag-decrement! bag->set set->bag set->bag!
bag->alist alist->bag
- Comparators:
set-comparator
bag-comparator
# set
# set-unfold
# set-contains?
# bag
# bag-unfold
# bag-contains?
#set?
#set-empty?
#set-disjoint?
#bag?
#bag-empty?
#bag-disjoint?
#set-member
#set-element-comparator
#bag-member
#bag-element-comparator
#set-adjoin
#set-adjoin!
#set-replace
#set-replace!
#set-delete
#set-delete!
#set-delete-all
#set-delete-all!
#set-search!
#bag-adjoin
#bag-adjoin!
#bag-replace
#bag-replace!
#bag-delete
#bag-delete!
#bag-delete-all
#bag-delete-all!
#bag-search!
#set-size
#set-find
#set-count
#set-any?
#set-every?
#bag-size
#bag-find
#bag-count
#bag-any?
#bag-every?
#set-map
#set-for-each
#set-fold
#set-filter
#set-filter!
#set-remove
#set-remove!
#set-partition
#set-partition!
#bag-map
#bag-for-each
#bag-fold
#bag-filter
#bag-remove
#bag-partition
#bag-filter!
#bag-remove!
#bag-partition!
#set-copy
#set->list
#list->set
#list->set!
#bag-copy
#bag->list
#list->bag
#list->bag!
#set=?
#set<?
#set>?
#set<=?
#set>=?
#bag=?
#bag<?
#bag>?
#bag<=?
#bag>=?
#set-union
#set-intersection
#set-difference
#set-xor
#set-union!
#set-intersection!
#set-difference!
#set-xor!
#bag-union
#bag-intersection
#bag-difference
#bag-xor
#bag-union!
#bag-intersection!
#bag-difference!
#bag-xor!