Tue, 08 Dec 2009 01:02:04 +0100, Lutger wrote: > retard wrote: > ... >> You surely understand that Walter doesn't have enough time to change >> this before the Andrei's book is out. So D2 won't be getting this. >> Besides, he hasn't even said that he likes the syntax. And D can't >> infer the types that way, you would need >> >>> Foo ( (auto a, auto b) => a + b ); > > why not ? (a, b) { return a + b; } already works for template alias > parameters. > >> or >> >>> Foo ( [T,S](T a, S b) => a + b ); >> >> >>> // 4. lambda with statement (previous examples were expressions) >>> Array.FindAll (arr, item => { return item.Contains ("abc"); } ); // >>> curly braces, semicolon and return are required when statement is >>> used. >>> >>> D could use: >>> >>> 1. auto t = new Thread ( { a=42 } ); >>> or auto t = new Thread ( () { a=42 } ); >>> >>> 2. array.findAll (arr, (item) { item.contains ("abc") } ); >> >> Andrei invented the string template parameter hack to avoid this. This >> would work too slowly since the dmd backend from the 1960s cannot >> inline anonymous functions. It can only inline named functions. >> >> > I don't think inlining is done in the backend.
Nope, but it isn't done in other parts of the compiler, either, for that matter.