curry化再び
結局の所、スタック変数を自前で覚えておけばいいのだ。簡単なことだった。
import std.c.stdio; class Curry{ this(int x0, int delegate(int x, int y) f0){ x = x0; f = f0; } int opCall(int y){ return f(x, y); } private: int x; int delegate(int x, int y) f; } void main(){ int hoge(int x, int y){ return x + y; } Curry f = new Curry(3, &hoge); printf("curry : %d\n", f(4)); }
実行すると勿論。
curry : 7
なんとなくアレな解決策だけど。