D doesn't have real closures
Julio César Carrascal Urquijo
jcarrascal at gmail.com
Thu Sep 13 19:11:23 PDT 2007
Guillaume B. wrote:
> Is there something wrong with this? ... Well, real closures would be much
> nicer, but I want to know if I'm missing something...
>
> Thanks,
>
> Guillaume
Yes, first you are binding function arguments. In the inner function you
can't use the outer function's variables without passing them as
arguments and if you accidentally use one of them the compiler wont help
you detect it.
The second problem is that it's too cumbersome to use. The easier it is
to use a feature the more uses you'll find.
One of the examples in the article is ported from JavaScript where it is
wildly used for it's elegance and because it works. It works in D but I
don't think any D programmer will use it because it looks horrible in D.
If you force a programmer to bind all variables to get something that
works like a closure he'll settle with another alternative.
That's the problem I see.
More information about the Digitalmars-d-announce
mailing list