
: Disclaimer: I haven't read all of this thread, and what I have read I've sometimes skimmed (and apparently some of the discusion was offlist anyway). On Mon, Jan 26, 2015 at 10:24:07PM -0800, Chris Barker wrote:
So what I haven't seen yet is an example use case where you really need the symmetric case -- i.e. it matters that is_close(a,b) is guaranteed to be the same as is_close(b,a).
Does anyone have a use-case??
Once this exists, at some point somebody's going to write: def near_miss(data, tol): pairs = itertools.combinations(data.values(), 2) return any(is_close(a, b, tol) for a, b in pairs) and then (if it's asymmetric) be very surprised when this: example = {'A': 0.01, 'B': 2.34, 'C': 5.67, 'D': 5.68, 'E': 9.99} near_miss(example, 1/568) returns True half the time and False the other half. That's going to be a really nasty heisenbug when it crops up in real code, especially since it's only going to change for each invocation of the interpreter. I don't really buy the idea that it'll almost always be used with tolerances of 1e-8 etc. If it goes in the stdlib, it'll be used in ways no-one here anticipates (and which are not, intuitively, "wrong"). -[]z. -- Zero Piraeus: absit invidia http://etiol.net/pubkey.asc