On 12/19/10 11:54 AM, foobar wrote:
Andrei Alexandrescu Wrote:
Either way, I personally don't care that much for another syntax for delegates.
I personally just want to see this ugly hack removed from the standard library
and discouraged. This feature promotes a code smell. And for what, as you said
yourself, to save 4 characters?
"a> b" vs. (a, b) { return a> b; }
Savings: 17 characters.
I reserve the right to dislike it even if it was 20 characters. The fact that
it's a useful hack doesn't make it smell less.
It doesn't smell. You believe it does only because you mistakenly
believe it's not hygienic.
D should be consistent with only ONE delegate syntax. This is why Ruby reads
like poetry to its followers and c++ is like carving letters in stone.
Also, Ruby is well slower than C++ and other languages. It's easy to
design a beautiful language if that's the primary concern. It's
difficult to design a language when you want to keep in harmony a larger
list of desiderata.
I much prefer that the lowering you mentioned to be implemented so that
performance wise this UGLY hack will have no benefits.
The lowering will unfortunately solve little. I don't see how
sort!"a> b"(array);
is horrible but
sort(a, b; array) { return a> b; }
I wasn't referring to the above which still deals with the syntactic issue.
I'm talking about making:
sort!"a>b"(whatever);
and
sort(whatever, (a, b) { return a>b; });
have the same performance. Thus obviating the need for the first form.
I explained how this is much more difficult than it might seem at first
sight.
Andrei