On Saturday, 23 March 2013 at 19:56:17 UTC, deadalnix wrote:
On Saturday, 23 March 2013 at 15:55:36 UTC, John Colvin wrote:
On Saturday, 23 March 2013 at 15:00:13 UTC, bearophile wrote:
foobar:

Code that needs named parameters to be more readable is poorly designed code in the first place.

Have you used a language where the usage of named arguments is idiomatic, like Python, Scala or Ada? They are sometimes useful even for well designed code, like functions with two arguments.

Bye,
bearophile

A simple example is matplotlib.pyplot.plot

There are so many possible flags and parameters that can be passed in order to get the exact behaviour you want, but commonly you'll only want a few set for each call. You don't want to have to set all the other preceding parameters, you just want to go e.g. plot(data, linewidth=5)

Can't the monadic style thing do the trick ?

Named!plot.linewidth(5).call(data);

This is doable with actual D using compile time reflection.

Good point, and I'm sure we all develop our personal sense of 'code smell' based on our own past experience. I find adding lots of enums to be like doing RAII in C++: I find it a pain to have to pollute namespaces with extra enums (classes), just to get readability/safety.

To me, the builder/monadic style is clunky and harder to read. I find

plot(data, linewidth = 5)

to be clean, clear, and more concise.

Reply via email to