On Monday, 10 June 2013 at 01:59:29 UTC, Jonathan M Davis wrote:
On Monday, June 10, 2013 11:44:56 Daniel Murphy wrote:
In this case we can prevent problem simply by not giving functions generic names like 'compress'. Ideally you should be able to import the entire
standard library with no name conflicts.

We've actually made the opposite choice when discussing this in the past. We've specifically gone for making functions which do the same thing in different modules having the same name (e.g. std.ascii and std.uni), which makes swapping one for the other easy and avoids having to come up with distinct names, though it does obviously create more naming conflicts when you try and mix and match such modules. I'd also point out that it's been argued that it's a failure of the module system if we're specifically trying to avoid having different modules have functions with the same name. It's the module system's job to differentiate such functions, and specifically avoiding naming stuff the same to avoid naming conflicts means that you're pretty much ignoring
the module system.

So, the general approach has been to name functions differently when they do different things and name them the same when they do the same thing and then let the module system take care of differentiating between the two when you
need to.

- Jonathan M Davis

You are wise and speak the truth :P

Reply via email to