Custom Blocks
dsimcha
dsimcha at yahoo.com
Mon Aug 9 21:40:59 PDT 2010
== Quote from Andrei Alexandrescu (SeeWebsiteForEmail at erdani.org)'s article
> Chris Williams wrote:
> > I'm not sure whether the design of D 2.0 has stabilized as yet, but if not,
> > I would like to suggest the ability to create custom block types.
> [snip]
> FWIW we've been talking a long time ago about a simple lowering - if the
> last argument to a function is a delegate, allow moving the delegate's
> body outside of the function:
> fun(a, b, c) { body }
> |
> V
> fun((a, b, c) { body });
> As far as Walter and I could tell, there are no syntactical issues
> created by such a lowering. But we've been wrong about that in the past
> (me 10x more often than him).
> Andrei
So this would basically allow the creation of custom flow control constructs at
least to a limited extent? For example:
void unless(T)(T condition, void delegate() executeThis) {
if(!condition) executeThis();
}
void until(T)(T condition, void delegate() executeThis) {
while(!condition) executeThis();
}
void main() {
until(someoneKnowsWhetherPequalsNP() ) {
writeln("Who knows?");
}
unless(P == NP) {
writeln("P != NP");
}
}
More information about the Digitalmars-d
mailing list