4 ms·
Okay, it looks like I misunderstood your original point: > "Are these two things equivalent?" has an unambiguous answer regardless of whether the things are of
by uryga 8y ago
Okay, it looks like I misunderstood your original point:
> "Are these two things equivalent?" has an unambiguous answer regardless of whether the things are of different types.
as
"Isomorphic things should compare equal"
So, to respond to (what I think is) your actual point: in my view, equality is defined on values of a single type, so I prefer to distinguish
"a isn't equal to b" (= False)
and
"there's no defined way to compare a and b, because they have different types" (= some kind of error or a null-like value)
To me, conflating the two seems counterproductive, but perhaps this is personal preference (probably correlated with how much one likes static typing).
- ubernostrum 8y agoPython has operator overloading, though, so a flat rule that comparisons involving values of different types must always be a type error would actually reduce the power of the language. Granted, there aren't a ton of use cases where it's important to be able to do this, but it is useful on occasion.
- deleted 8y ago[deleted]
- uryga 8y agoYou're right – I guess I got too hung up on the types. What I meant to say is that I prefer to distinguish "`a` is not equal to `b`" and "equality between `a` and `b` is undefined"; the typing aspect is kind of orthogonal and muddles the discussion. (I guess I ended up conflating equality and equivalence[1], but in my defense, most languages seem to do that too; and the presence of the `is` operator in Python mixes things up even more) [1] https://en.m.wikipedia.org/wiki/Equality_(mathematics)#Relation_with_equivalence_and_isomorphism https://en.m.wikipedia.org/wiki/Equality_(mathematics)#Relat...