一応
コードと実行結果を。
import std.c.stdio; class Curry(T, X, Y){ this(int x0, T delegate(X x, Y y) f0){ x = x0; f = f0; } T opCall(Y y){ return f(x, y); } private: X x; T delegate(X x, Y y) f; } void main(){ int hoge(int x, int y){ return x + y; } Curry!(int, int, int) f = new Curry!(int, int, int)(3, &hoge); Curry!(int, int, int) y = f; printf("%d, %d\n", f(4), y(2)); }
7, 3
そういえばこれだと返り値ない関数で出来ないなあ…