意図してなかったのに、こんなコードも通ることに気づいた。
writefln((_0+_1)(_0-_1,_0)(4,2));
ってことで、こんなコードも通る。
auto add = _0 + _1; auto sub = _0 - _1; writefln(add(sub(_1,_!(2)),_0)(2,3));
関数合成ktkr。
f!(writefln)(f!((int a,int b){return a+b;})(_0,_1))(2,3);
副作用のある式もこのとおり。
関数の後の(_0,_1)はオーバーロードの解決のための必要悪。