On Tue, Jun 8, 2010 at 20:13, Nick Sabalausky <a@a.a> wrote:

Template currying ;) Maybe not as flexible as typical currying, but still.

I recenly achieved getting partially there. At least, given

foo(A,B,C)(n args list) {...}

curry!foo will correctly create n 1-arg templated function inside one another and deliver the result at the end.
But it does not verify the compatibility of arguments while filling the arguments :(

Given 

foo(A,B,C)(A a, Tuple!(B,A) b, C[A] c) 

curry!foo will accept any A a, but then should only accept b's of the correct type: Tuple!(B,A), for some B and the already defined A, and the same for c. I'm making sense there?

I more or less see how to get there, but can't get motivated to do this :-)

 
Also, what's Unqual?

Gets rid of any const/immutable qualifiers.

Philipe