On Wed, Mar 4, 2020 at 10:22 AM Richard Damon <rich...@damon-family.org>
wrote:

> > But on one narrow point, I'm trying to think of everything in the
> standard library or builtins that actually forms a total order with
> elements of the same type.
> > * Not floats
> > * I think not strings with unicode canonical equivalence, decomposition,
> and normalization
> > * Definitely not sets, tuples, lists, dicts, etc.
> > * Arguably not Decimal because it is sensitive to decimal context
> > * Complex clearly not
> > * I think not datetimes under timezone issues (although any ordering is
> certainly *wrong* given the vagaries of timezones)
> > * Queues, deques, etc. don't even try, nor should they
> > * Do array.array's lack even a partial order?
> > So really I think we are left with wanting a test for whether something
> is "int or Fraction".
>
> I think strings do have the Total Order property, because string equality
> & etc does NOT get into the issues of Unicode canonical equivalence, I.e.
> the equality test is that they are the same sequence of code points,
> ignoring that multiple sequences of code points might be represent the same
> same canonical character, in part because there isn’t a single definition
> of that, as there is NFD/NFC and NFKD/NFKC equivalences which are different.
>

Fair enough. I'm kinda conflating (kinda deliberately) the Python level of
"what does the less-than operator do" with "what is meaningfully less that
what for the actual problem?"

And I'm also fudging the Decimal question too.  The relationship between
*expressions* can vary by decimal context.  But not of a value named by a
single variable. However, the expression can be quite simple:

>>> with decimal.localcontext() as ctx:
...     ctx.prec = 2
...     print(+a < b)
True
>>> with decimal.localcontext() as ctx:
...     ctx.prec = 10
...     print(+a < b)
False




-- 
Keeping medicines from the bloodstreams of the sick; food
from the bellies of the hungry; books from the hands of the
uneducated; technology from the underdeveloped; and putting
advocates of freedom in prisons.  Intellectual property is
to the 21st century what the slave trade was to the 16th.
_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at 
https://mail.python.org/archives/list/python-ideas@python.org/message/576AGOFEPMY37D6KDXGKXF5LHCGTG7JD/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to