Andrej Mitrovic:

> What I mean is, if curry detects that you're currying a compile-time
> argument against a template, then it should do what your
> PartialTemplate/StaticCurry would do.

This is currently not possible, a static curry needs compile-time arguments, so 
they need to specified as template arguments (with the bang !), while the 
normal curry is supposed to work with run-time values too.

Walter has tried to unify the two, using a syntax like:
void foo(int x, static int y, int z) {}
That's equivalent to:
void foo(int y)(int x, int z) {}

But the legend says he has found unspecified implementation difficulties, so 
the idea was abandoned. One purpose of D design is to avoid excessive compiler 
complexity.

-----------------------

Simen kjaeraas:

> dranges has something like this:
> http://svn.dsource.org/projects/dranges/trunk/dranges/docs/templates.html
> see CurryTemplate

Thank you for the link. This looks like a true currying, instead of a partial 
application like std.functional.curry.
I suggest to add CurryTemplate to Phobos2 while we wait forever for templates 
to be curried on default :-)

Bye,
bearophile

Reply via email to