On Fri, 19 Aug 2016 14:04:10 -0700, zef...@fysh.org wrote:
> > (0e0).WHICH
> Num|0
> > (-0e0).WHICH
> Num|-0
> > 0e0 === -0e0
> True
> 
> These two Num values are distinct: they are the floating-point signed
> zeroes, which have different numeric behaviour in some situations.
> The .WHICH values correctly distinguish them.  The === operator is
> incorrect in saying that they are the same object.  The same problem
> arises with Complex numbers with zero real or imaginary parts:
> 
> > <-0+0i>.WHICH
> Complex|-0|0
> > <0+0i>.WHICH
> Complex|0|0
> > <0-0i>.WHICH
> Complex|0|-0
> > <-0-0i>.WHICH
> Complex|-0|-0
> > <-0+0i> === <0+0i> === <0-0i> === <-0-0i>
> True
> 
> -zefram


Thank you for the report. The Num case was fixed awhile back as part of 
RT#128395. The Complex is now fixed as well.

Fix: https://github.com/rakudo/rakudo/commit/55cf6fa9e1
Tests: https://github.com/perl6/roast/commit/15c0978fed

Reply via email to