<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">2017-11-09 18:11 GMT+01:00 Raffaello Giulietti <span dir="ltr"><<a href="mailto:raffaello.giulietti@lifeware.ch" target="_blank">raffaello.giulietti@lifeware.ch</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On 2017-11-09 15:55, Nicolas Cellier wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
<br>
2017-11-09 15:48 GMT+01:00 Tudor Girba <<a href="mailto:tudor@tudorgirba.com" target="_blank">tudor@tudorgirba.com</a> <mailto:<a href="mailto:tudor@tudorgirba.com" target="_blank">tudor@tudorgirba.com</a>>><wbr>:<span class=""><br>
<br>
    Hi,<br>
<br>
    Thanks for the answer. The example I provided was for convenience.<br>
<br>
    I still do not understand why it is wrong to expect 0.1 = (1/10) to<br>
    be true.<br>
<br>
    Doru<br>
<br>
<br>
Because there are infinitely many different Fraction that would be "equal" to 0.1 then.<br>
The first effect is that you have<br>
<br>
a = b<br>
a = c<br>
b < c<br>
<br>
You are breaking the fact that you can sort these Numbers (are they Magnitude anymore?)<br>
You are breaking the fact that you can mix these Numbers as Dictionary keys (sometimes the dictionary would have 2 elements, sometimes 3, unpredictably).<br>
<br>
<br>
</span></blockquote>
<br>
Fractions are not reliable keys anyway:<br>
(Fraction numerator: 1 denominator: 3) = (Fraction numerator: 2 denominator: 6)<br>
evaluates to true while<br>
(Fraction numerator: 1 denominator: 3) hash = (Fraction numerator: 2 denominator: 6) hash<br>
evaluates to false<br>
<br>
<br>
</blockquote></div></div><div class="gmail_extra">You are violating the invariants described in class comment in this case, and thus missusing Fraction.</div><div class="gmail_extra">So it's not anymore the problem of the library</div><div class="gmail_extra"><br></div></div>