I think that this stems from a confusion between the divisibility problem
in integer number (on a ring) and the divisibility problem resolved by the
perl6 %% operator.

Personally I think that %% is useless while the former is useful and
missing. But I have nothing against useless operators

On Mon, Dec 11, 2017 at 9:56 PM, Darren Duncan <dar...@darrenduncan.net>
wrote:

> On 2017-12-11 12:22 PM, Sean McAfee wrote:
>
>> Well, not really.  I don't think x %% 0 should return a Failure at all.
>>
>> 1 / 0 is an expression which can evaluate to no sensible value, so it
>> makes
>> sense to fail there.  By the question "Is one divisible by zero?" has the
>> simple
>> answer "No."
>>
>
> I strongly disagree with you.
>
> First of all, the reason there is no sensible value is that the answer is
> BOTH "yes" and "no" at the same time, so you can't choose one.  Zero DOES
> divide evenly into anything, and typically does so an infinite number of
> times.  Bottom line, there is no good reason to answer either "yes" or "no"
> for zero.
>
> There are three distinct kinds of answers to the question "is x evenly
> divisible by y":
>
> 1. When dividing x by y there are no leftovers (yes).
> 2. When dividing x by y there are leftovers (no).
> 3. When dividing anything by zero there is no sensible value (Failure).
>
> It is very important to distinguish the above 3 cases.
>
> The main use case of %% is to gate logic where if 2 numbers do evenly
> divide we do some particular arithmetic with the results and if they don't
> but it is a valid division then we do other particular arithmetic with the
> results.
>
> The expression "x %% y" is to be equivalent to "(x % y) == 0)".
>
> -- Darren Duncan
>

Reply via email to