[swift-evolution] [Accepted] SE-0104: Protocol-oriented integers
Nevin Brackett-Rozinsky
nevin.brackettrozinsky at gmail.com
Thu Mar 2 10:48:59 CST 2017
Also not core team, but I didn’t realize this was missing during the
review. If I had I would have spoken up, because mathematically a magnitude
is *defined* as something that can be compared to see which underlying
object is bigger.
It is a measure of size, and it exists so that the sizes of objects can be
compared. Semantically, anything which is a magnitude must be comparable.
Putting that another way, if someone were to implement a type by giving it
a magnitude which wasn’t comparable, then that type should not be
considered numeric.
Even *vectors spaces*, where the objects aren’t even numeric because they
can’t be multiplied together, still have magnitudes which are comparable
since they must obey the triangle inequality.
I think the omission of ‘Comparable’ from ‘Magnitude’ should be considered
a bug in the proposal, and it should be amended as an obvious fix for an
oversight. Again, a magnitude is a measure of size, and it exists for the
purpose of being compared.
Nevin
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20170302/b52b801e/attachment.html>
More information about the swift-evolution
mailing list