Gordon:
...
case 5. X = ",x); } )();
call_function!( (x) => { writeln("lambda,
case 6. X = ",x); } )();
call_function!( (x) => writeln("lambda,
case 7. X = ",x) )();
}
There is also the simpler syntax:
x => writeln("lambda, case 8. X = ", x)
So I've learned that syntaxes in cases 2,4,6 are wrong, but
they still compile.
May question is - what do they do? what usage do they have
(since they do not trigger a compilation warning)?
Observe:
void main() {
import std.stdio;
auto f = (int x) => { x.writeln; };
f(10)();
}
It prints 10.
The syntax for lambdas is "... => ...", while (...){...} was the
older syntax. If you use both, you are creating a lambda that
returns a lambda.
Bye,
bearopile