On 12/12/10 12:36 PM, Nick Sabalausky wrote:
"Adam D. Ruppe"<destructiona...@gmail.com> wrote in message
news:ie2sv2$2th...@digitalmars.com...
We already have a D block syntax!
=====
void myfun(void delegate() lol) {
lol();
}
void main() {
myfun = {
assert(0, "lol");
};
}
======
Totally compiles. :-P
It works with delegate arguments too!
========
void myfun(void delegate(string) lol) {
lol("say it ");
}
void main() {
myfun = (string what) {
assert(0, what ~ " lol");
};
}
==========
Whoa.
(note that while I'm only a little serious here - that actually
looks fine to me - I don't think the language needs a change
here. }); doesn't bother me one bit.)
I'm sure that's going to disappear when D's properties get implemented as
intended.
Handling control flow inside the delegate (break, continue, return) adds
certain complications. Nothing impossible, but they do erode the
simplicity of the rewrite.
Andrei