I wouldn't mind if the standard `%` operator worked like this and there would 
be another top-level function `mod(p, q)` that worked like `%` in C. The only 
times that I've ever needed the modulo operation 
(https://en.wikipedia.org/wiki/Modulo_operation) to behave some way on negative 
values it's always been the suggested remainder-of-flooring-division way.

On the other hand, there's a performance penalty (avoidable by using the other 
mod operation), so I can understand if not everyone agrees.

And like Steve said below, then we'll need a flooring division function (or 
operator) as well. And a flooring `(f, r) = divmod(p, q)` too, I suppose.

In any case, I'm probably +1 if a well-thought proposal is brought to the table.

— Pyry

> Adam Nemecek wrote:
> 
> Would you want to make this a function? Or an operator but a different one?
> 
>> On Mon, May 23, 2016 at 7:30 AM, Stephen Canon <sca...@apple.com> wrote:
>> I’m not really sold on the `%%` spelling, but I think the operation itself 
>> is worth exposing.  This is the remainder of a “flooring” division (as 
>> opposed to the C-family “truncating” division[1]).  If we do provide it, we 
>> should also provide the accompanying divide operation.
>> 
>> – Steve
>> 
>> [1] there are several other ways to define division beyond these two: 
>> remainder is always positive, remainder is closest to zero, etc.  Truncating 
>> and flooring division are the most common by a wide margin, however.
_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to