I am not a specialist in this area (although I call myself a mathematician). But they say that sometimes the outsider sees most of the game, or more likely that sometimes the idiot's point of view is useful. To me the idea of non-reflexive equality (an object not being equal to itself) is abhorrent. Nothing is more likely to put off new Python users if they happen to run into it. And I bet even very experienced programmers will be tripped up by it a good proportion of the time they hit it. Basically it's deferring to a wart, of dubious value, in floating point calculations and/or the IEEE754 standard, and allowing it to become a monstrous carbuncle disfiguring the whole language. I think implementations of equal/not-equal which are make equality non-reflexive (and thus break "identity implies equality") should be considered broken. On 27/04/2011 15:53, Guido van Rossum wrote: > Maybe we should just call off the odd NaN comparison behavior? Right on, Guido. (A pity that a lot of people don't seem to be listening.) On 27/04/2011 17:05, Isaac Morland wrote: > Python could also provide IEEE-754 equality as a function (perhaps in > "math"), something like: > > def ieee_equal (a, b): > return a == b and not isnan (a) and not isnan (b) > Quite. If atypical behaviour is required in specialised areas, it can be coded for. (Same goes for specialised functions for comparing lists, dictionaries etc. in non-standard ways. Forced explicit is better than well-hidden implicit.) > Of course, the definition of math.isnan cannot then be by checking its > argument by comparison with itself Damn right - a really dirty trick if ever I saw one (not even proof against the introduction of new objects which also have the same perverse non-reflexive equality). > - it would have to check the appropriate bits of the float representation. So it should. On 28/04/2011 11:11, Nick Coghlan wrote: > After all, why discard centuries of mathematical experience based on a > decision that the IEEE754 committe can't clearly recall the rationale > for, and didn't clearly document? Sorry Nick, I have quoted you out of context - you WEREN'T arguing for the same point of view. But you express it much better than I could. It occurred to me that the very length of this thread [so far!] perfectly illustrates how controversial non-reflexive "equality" is. (BTW I have read, if not understood, every post to this thread and will continue to read them all.) And then I came across: On 28/04/2011 09:43, Alexander Belopolsky wrote: > If nothing else, annual reoccurrence of long threads on this topic is > a reason enough to reconsider which standard to follow. Aha, this is is a regular, is it? 'Nuff said! Best wishes Rob Cliffe
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4