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

Reply via email to