How can you read and understand the source of *naryFun in functional.d?

Philippe Sigaud philippe.sigaud at
Sun Jan 30 06:33:06 PST 2011

On Sun, Jan 30, 2011 at 12:03, Tom <tom at> wrote:
> I would like to thank you for that such a great explanation of the Template-based
> programming in that unary example. I think it's great you have uploaded that to
> the wiki4d, and it's definite will help a lot of people that come from other
> common languages background (like C, C# and Python) that don't support full
> templating, to understand that design pattern.
> And with that close tracking to the functional.d code, I thing but not sure that
> we've found some bugs. I will do some testing later today, and if I will see what
> I think to be wrong, I'll update.

If anyone is interested, I coded a n-args version of
unaryFun/binaryFun called naryFun. If you use 'a', 'b', ... as args
names, it can automatically determine the templated function arity.

So naryFun!"a + b * c - sin(d-a)" is a 4-args template function.

It's there:
(look for naryFun at the bottom)

code is here:

It could be simpler now: when I did it 18 months ago, CTFE wasn't so
powerful. The looping templates can now easily be done with a simple
foreach. This has been on my todo list for quite some time...


More information about the Digitalmars-d-learn mailing list