"Nick Sabalausky" <a...@a.a> wrote in message news:iejimj$11q...@digitalmars.com... > "Walter Bright" <newshou...@digitalmars.com> wrote in message > news:ieji4j$10k...@digitalmars.com... >> Simen kjaeraas wrote: >>> The problem of D's lambda syntax is it is optimized for longer >>> functions. Usually, the delegates I write are one line long. I cannot >>> see that this syntax collides with anything at the moment, but feel free >>> to enlighten me: >>> >>> { => 4; } >>> { a => 2*a; } >>> { a, b => a>b; } >>> { => @ + @; } // turns into { a, b => a + b; } >>> >> >> If size and simplicity of typing are critical, are those really better >> than: >> >> "a>b" >> >> ? > > Yes, because in practice "a>b" must end up being evaluated in the wrong > scope. I've used std.algorithm very little so far, and yet I've still > found that limitation to be a problem. > > There's also the minor quibble that "a>b" doesn't get highlighted right, > but that's obviously solvable with q{a>b}. >
One other issue with the string: You can't pass it to a function that expects an actual delegate. It may or may not be possible to make a conversion function, but even if so, you'd lose the simplicity/brevity which was the whole original point. All in all, it's just platering over the problem.