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