@N[$i] += $temp;
, where $temp
was 0.00686851014887172
. This wasn't one of my fancy overloaded operators, it was a basic Perl 6 numeric operator. What could go wrong?Well, I added a bunch more stuff to the say. And it turns out we are adding two Rats, 424/61731 and 832/61731. What could go wrong?
> say 424/61731 + 832/61731
too many positional arguments: 3 passed, 1 expected
If you look into
infix:<+>(Rat, Rat)
, it just does a naive fractional add, relying on Rat.new
to reduce the fraction. The problem here is that means the denominator of our new fraction starts its life as 61731 * 61731
.
> say (61731 * 61731) div 246924
No applicable candidates found to dispatch to for 'infix:div'
I'm not sure what the best approach to fixing this is. Obviously I can change my code to do Nums. But I think the first step is to file a Rakudo bug.
No comments:
Post a Comment