Previous: , Up: setomat   [Index]


12.3 implementations

This api is reached from (ice-9 vset). It implements complementable set and setmaps from different underlying vhash datastructures.

12.3.1 API

There are several versions of datastructures that we create and the API for those will come in the subsectons to this section, but all these datastructures have in common the following.

empty            : the empty set
world            : the world representation

(mk-kv key val)  : make a key value pair for non x structures
(mk-kvx key val #:key  (equal? equal?) 
		       (hash   hash) 
		       (value? #t) 
		       (order? #t))
(mk-kx key #:key (equal? equal?) 
		 (hash   hash) 
		 (value? #f) 
		 (order? #t))

equal? : the equality predicate used for this key
hash   : the hash used for this key
value? : if the value need to be important
order? : if ordering of this key is important

12.3.1.1 vset that is based on equal? vhash datastructure

   vset-equal?
   vset-union
   vset-intersection
   vset-difference
   vset-addition
   vset-complement
   vset-subset<
   vset-subset<=

   voset-equal?
   voset-union
   voset-intersection
   voset-difference
   voset-addition
   voset-complement
   voset-subset<
   voset-subset<=
   
   vset-fold
   vset-map
   vset-for-each
   vset-empty

12.3.1.2 vset that is based on eq? vhash datastructure

   vsetq-equal?
   vsetq-union
   vsetq-intersection
   vsetq-difference
   vsetq-addition
   vsetq-complement
   vsetq-subset<
   vsetq-subset<=

   vosetq-equal?
   vosetq-union
   vosetq-intersection
   vosetq-difference
   vosetq-addition
   vosetq-complement
   vosetq-subset<
   vosetq-subset<=
   
   vsetq-fold
   vsetq-map
   vsetq-for-each
   vsetq-empty

12.3.1.3 vset that is based on eqv? vhash datastructure

   vsetv-equal?
   vsetv-union
   vsetv-intersection
   vsetv-difference
   vsetv-addition
   vsetv-complement
   vsetv-subset<
   vsetv-subset<=

   vosetv-equal?
   vosetv-union
   vosetv-intersection
   vosetv-difference
   vosetv-addition
   vosetv-complement
   vosetv-subset<
   vosetv-subset<=
   
   vsetv-fold
   vsetv-map
   vsetv-for-each
   vsetv-empty

12.3.1.4 vset that is based on per element hash and equal redicates vhash datastructure

   vsetx-equal?
   vsetx-union
   vsetx-intersection
   vsetx-difference
   vsetx-addition
   vsetx-complement
   vsetx-subset<
   vsetx-subset<=

   vosetx-equal?
   vosetx-union
   vosetx-intersection
   vosetx-difference
   vosetx-addition
   vosetx-complement
   vosetx-subset<
   vosetx-subset<=
   
   vsetx-fold
   vsetx-map
   vsetx-for-each
   vsetx-empty

12.3.1.5 weak vset that is based on per element hash and equal redicates vhash datastructure

   wsetx-equal?
   wsetx-union
   wsetx-intersection
   wsetx-difference
   wsetx-addition
   wsetx-complement
   wsetx-subset<
   wsetx-subset<=

   wosetx-equal?
   wosetx-union
   wosetx-intersection
   wosetx-difference
   wosetx-addition
   wosetx-complement
   wosetx-subset<
   wosetx-subset<=
   
   wsetx-fold
   wsetx-map
   wsetx-for-each
   wsetx-empty

Previous: , Up: setomat   [Index]