Proposal for a set handling library
bearophile
bearophileHUGS at lycos.com
Wed Jan 1 16:44:47 PST 2014
Raphaël Jakse:
> auto E = new Set!int([1,2,3,4]); // it is possible to
> declare an empty set
You can add a factory helper:
auto e = set([1, 2, 3, 4]);
Or even:
auto e = set(1, 2, 3, 4);
> writeln("union: ", E.Union(F));
> writeln("inter: ", E.Inter(F));
> writeln("symmetric difference: ", E.SymDiff(F));
> writeln("minus: ", E.Minus(F));
> writeln("Powerset: ", E.Powerset);
In idiomatic D all the member functions start with a lowercase
letter.
And a little operator overloading helps, look at the Python set()
for a nice API.
> // beware, because S is an untyped set (Set!() or
> Set!Object),
Probably in idiomatic D you use templates, so Set!Object is a
very uncommon usage, unlike Java.
> Should Phobos have something similar built in?
A set is a good thing to have in Phobos, but the API and design
should be a little different from yours.
Bye,
bearophile
More information about the Digitalmars-d
mailing list