Set and Ranges template.
Fredrik Olsson
peylow at gmail.com
Sat Jul 8 12:41:53 PDT 2006
Ddoc documentation:
http://peylow.no-ip.org/~peylow/set.html
Actual implementation:
http://peylow.no-ip.org/~peylow/set.d
I whipped up a module with templates for Ranges and Sets. Ranges are
only useful for numerical values. Sets can be used for any value; a set
of {1, 2, 3} is just as valid as a set of {green, whale, 42}.
Currently only empty and finite ranges are supported (Infinite set if
you make a range over real numbers), infinite and non continuous ranges
would be nice, but that is a task for another day. Unions, intersection,
complements, membership test and iterations can naturally be done on
sets. As well as construction a set from a range non continuous range.
Empty, finite, and infinite sets are supported. Unions, intersections,
unary and binary complements, membership tests, and iterations over set
members supported.
Three classes are used in combination to allow for full naive set algebra;
Set - For finite sets.
FunctionSet - An infinite set with members defined by function.
CombiningSet - An infinite set construction by combining sets.
The optimal set class is constructed for each operation (union,
intersection, etc). Maybe CombinedSet should be named ComputedSet?
Three global sets provided;
evenIntSet - A set of all even integers.
oddIntSet - A set of all odd integers.
primeIntSet - A set of all primes.
Comments, and bug hunt requested :)
// Fredrik
More information about the Digitalmars-d-announce
mailing list