opCmp, [partial/total/pre]orders, custom floating point types etc.

John Colvin via Digitalmars-d digitalmars-d at puremagic.com
Tue Jan 12 11:13:29 PST 2016


On Tuesday, 12 January 2016 at 19:00:11 UTC, Andrei Alexandrescu 
wrote:
> On 01/12/2016 01:27 PM, John Colvin wrote:
>> Preorder or partial order: not possible in D, opCmp insists on 
>> totality.
>
> The way I look at it, a partial order would implement opCmp and 
> opEqual such that a < b, b < a, and a == b are simultaneously 
> false for unordered objects. Would that float your boat? -- 
> Andrei

a<=b and b<=a must also be false. That would work for a partial 
order, yes. Unfortunately, that's not possible with the current 
opCmp design, hence my 2 suggestions for improvements (I'm pretty 
sure the second one is better).

The key thing is to have a design that doesn't enforce totality.


More information about the Digitalmars-d mailing list