extreme curring (proposal)
Tom S
h3r3tic at remove.mat.uni.torun.pl
Sat Mar 3 17:31:37 PST 2007
Thorsten wrote:
> Hi, at the moment it is not possible, but it wold be nice to have in the future.
> (But maybe not very necessary)
>
> R delegate(U) Curry1(R,X...,U...)(R delegate(X,U) dg,X args)
> {
> struct Foo
> {
> typeof(dg) dg_m;
> X args_m;
>
> R bar(U xs)
> {
> return dg_m(args_m,xs);
> }
> }
>
> Foo* f = new Foo;
> f.dg_m = dg;
> foreach (i, arg; args)
> f.args_m[i] = arg;
>
> return &f.bar;
> }
>
> I know that "double variadic template arguments" are not possible with the current version, right ?
>
You could try std.bind : http://digitalmars.com/d/phobos/std_bind.html
Examples in the independent package:
http://www-users.mat.uni.torun.pl/~h3r3tic/bind2.zip
--
Tomasz Stachowiak
More information about the Digitalmars-d
mailing list