[swift-evolution] Feature proposal: Range operator with step
Erica Sadun
erica at ericasadun.com
Wed Apr 6 13:58:23 CDT 2016
> On Apr 6, 2016, at 12:43 PM, Dave Abrahams <dabrahams at apple.com> wrote:
>
>
> on Wed Apr 06 2016, Erica Sadun <erica-AT-ericasadun.com> wrote:
>
>> On Apr 6, 2016, at 12:16 PM, Dave Abrahams via swift-evolution
>> <swift-evolution at swift.org> wrote:
>> (0..<199).striding(by: -2)
>>
>> are even or odd.
>>
>> (0..<199).striding(by: -2): 0..<199 == 0...198 Even
>> (1..<199).striding(by: -2): 1..<199 == 1...198 Even
>
> I understand the logic that got you there, but I find it incredibly
> counter-intuitive that striding by 2s over a range with odd endpoints
> should produce even numbers... I can't imagine any way I'd be convinced
> that was a good idea.
Guidance:
When using odd integer literals to produce an even number sequence,
prefer the `...` operator to the `..<` operator and change your ending
literal to an even number.
-- E
>
>> (0..<198).striding(by: -2): 1..<198 == 0...197 Odd
>> (1..<198).striding(by: -2): 1..<198 == 1...197 Odd
>>
>> -- E
>>
>
> --
> Dave
More information about the swift-evolution
mailing list