On Monday, 7 April 2014 at 17:46:44 UTC, w0rp wrote:
On Sunday, 6 April 2014 at 14:47:28 UTC, JN wrote:
Wouldn't it be better to have named parameters like in Python or
C#? That way you could call the function like:

func(foo=myFoo) or func(bar=myBar) or func(foo=myFoo, bar=myBar)
and there would be no ambiguity.

Named parameters would be nice to have. I'm not sure how you would implement them in D, though.

it would be relatively easy.

void myfunc(name = int x) { }

instead of

void myfunc(int x) { }

then

myfunc(name = 4);

or one could simply use the variable name

void myfunc(int x) { }

myfunc(x = 3);


Of course assignments may not be valid, one could use := instead.

myfunc(x := 3);



One could build a template to do it how were but it would require calling the function as a string,

e.g., template is passed the call as a string. The template gets the name of the function, looks up the parameter names, parses the arguments and generates the proper call string which is then mixed in.

e.g., Named(q{myfunc(x := 3)}); => myfunc(3);



Reply via email to