[swift-evolution] Feature proposal: Range operator with step
Erica Sadun
erica at ericasadun.com
Mon Mar 28 17:35:30 CDT 2016
> On Mar 28, 2016, at 3:54 PM, Dave Abrahams via swift-evolution <swift-evolution at swift.org> wrote:
>
>
> on Mon Mar 28 2016, Erica Sadun <swift-evolution at swift.org> wrote:
>
>>> On Mar 28, 2016, at 3:25 PM, Dave Abrahams via swift-evolution
>>> <swift-evolution at swift.org> wrote:
>>>
>>>
>>> on Mon Mar 28 2016, Xiaodi Wu
>>
>>> <swift-evolution at swift.org
>>> <mailto:swift-evolution at swift.org>>
>>> wrote:
>>>
>>>> Right, Countable could refine Strideable. I'm no expert on this, but
>>>> some cursory reading suggests that the analogous feature in C++ simply
>>>> requires the type to have operator++ defined. Obviously, that won't
>>>> work for Swift 3.0...
>>>
>>> Hmm, instead of defining a new protocol (Countable), what if we just use
>>> “Strideable where Stride : Integer” as a constraint?
>>
>> I like a differentiation between continuous and discrete things
>> although both can have ranges, membership, fences,
>> and a way to stride through them
>
> Strideable where Stride : Integer expresses just exactly that. Now if I
> could only get the type-checker to cooperate...
I am ridiculously excited about what you're doing there.
Looking forward to beautiful floating point strides if for no
other reason than I can point out how well they work for math
in comparison to traditional for;;loops, so maybe people will
stop burning semicolons on my lawn.
What are you feelings about disjoint and invertible intervals?
(I'll admit they currently fail the Lattner test[1], but they appeal to
my aesthetics)
-- E
[1] First rule of Lattner: A language change should provide a highly focused
tweak to Swift with limited impact and a measurable benefit to developers
More information about the swift-evolution
mailing list