[swift-users] How to be DRY on ranges and closed ranges?

Ole Begemann ole at oleb.net
Thu Oct 13 13:54:09 CDT 2016


> The more idiomatic way is to look at API design in a new way. Note these
> points:
>
> 1. `Countable` variant is preferred when you want to deal with integer
> ranges as it more closely matches the element type.
> 2. Both countable range variants share a common protocol conformance
> already: `RandomAccessCollection`
> 3. Swift API design prefers member functions to free functions.
>
> Hence a more idiomatic (Swifty) API would probably be something like this:

Thanks for sharing this solution, Hooman, I really like it. I think 
you're making a great point about considering the appropriate 
abstraction for an algorithm, which is why I blogged about this: 
https://oleb.net/blog/2016/10/generic-range-algorithms/

I hope you don't mind.

Ole



More information about the swift-users mailing list