http://qs321.pair.com?node_id=11105234


in reply to Thoughts on "one function, flexible arguments"?

hornpipe2:

If you feel compelled to give it a go, you might try Kevorkian* as daxim mentioned, or Params::Smart that davido suggested, as one of these could remove a lot of the complexity from your functions. (I've never used them but may try 'em out of curiosity.)

Having said that, though, I'm going ring in with agreement with GrandFather and davido on this one: While having some flexibility in the arguments can be a good thing, it's easy to go too far. I've seen issues where (a) you get few/no users of one calling method, (b) extra difficulty in sussing out what change(s) you may need to make when you take all the calling conventions into account, (c) maintaining of code that's never even used, (d) the flexibility adds rather than removes confusion to users.

(*) Sorry for that, but it's the first thing that came to mind when I saw daxim's response.

...roboticus

When your only tool is a hammer, all problems look like your thumb.