naif v0.0.7
naif
Naive sets.
The sets are limited in what they can store b/c are based on aspic. Anything that is not serializable by JSON.stringify cannot be stored.
example usage
var naif = require('naif');
// call the naif function with zero or more array arguments:
var e = naif();
e.empty(); //true
var s1 = naif(['hello','there', 'this'],['is', 'is', 'is', 'a', 'set']);
s1.size(); //6
var s2 = naif(['hello','again'],['one',2, 3.1415, {'six' : 7}]);
s2.size(); //6
// we can do set operations using logical language:
var s1_intersect_s2 = s1.and(s2);
s1_intersect_s2.size(); //1
s1_intersect_s2.each(console.log);
// hello
// we can chain several operators.
// the following prints out each string that is in the union of s1 and s2
s1.or(s2).suchthat(function(e) {return e.constructor === String}).each(console.log);
// hello
// there
// this
// is
// a
// set
// again
// oneapi
naif()
The naif(array*) function takes zero or more arrays and returns a set object;
set objects
Given a set called s, the following functions are supported:
s.size(): returns the number of elements in the sets.each(fn): the basic set iterator, wherefnis a function of a single argument.s.or(s2): returns the union ofsands2, where both are sets returned bynaifs.and(s2): returns the intersection ofsands2s.not(s2): returns the set difference,slesss2s.xor(s2): returns those elements insors2but not in boths.empty(): returnstrueifsis the empty sets.all(p): returnstrueifp(e)is true for eacheinss.exists(p): returnstrueifp(e)is true for at least oneeinss.subset(s2): returnstrueifsis a subset ofs2s.superset(s2): returnstrueifsis a superset ofs2s.equal(s2): returnstrueifsands2contain the same elements, up to the equality of their serialized contents (see aspic for details about serialization)s.toArray(): returns an array of the set's contents.s.mutable(): this extendsswith new methods for mutability, returning a new mutable set that shares memory withs.
mutable set objects
Mutable sets have all of the functions above, plus two more:
ms.insert(x): insertsxinto the the setms.remove(x): removesxfrom the set
oh goodie.