On 2010-12-12 19:37, Nick Sabalausky wrote:
"Nick Sabalausky"<a...@a.a>  wrote in message
news:ie34p4$dg...@digitalmars.com...
"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.


And FWIW, it looks like operator-overload-abuse to me.

This is operator overload abuse:

myfun in (string what) {
    assert(0, what ~ " lol")
};

"myfun" would return a struct that has defined an opIn method.

--
/Jacob Carlborg

Reply via email to