[swift-evolution] [Review] SE-0006 Apply API Guidelines to the Standard Library

Dave Abrahams dabrahams at apple.com
Sat Jan 30 23:39:51 CST 2016


on Sat Jan 30 2016, Goffredo Marocchi <swift-evolution at swift.org> wrote:

>> On 30 Jan 2016, at 02:47, Alex Migicovsky via swift-evolution
>> <swift-evolution at swift.org> wrote:
>> 
>> IMO the ‘like’ suffix makes it sound like the conforming type to
>> Collectionlike is like a Collection, but not exactly a Collection.
>
> and isn't this the point of protocols? To decouple the behaviour you
> expose/the contract you make from what you actually are/how you are
> implemented?

The point is that conforming to a protocol is supposed to be a strong
declaration about not just syntax, but semantics.  You could read my
posts in this 14-year-old thread
<http://www.gossamer-threads.com/lists/python/python/133396#133396>
(geez, now I feel ancient) if you want to understand what I mean.

>> Maybe there’s another suffix that works but I don’t think this one conveys the right information.
>> 
>> - Alex
>> 
>>>> On Jan 29, 2016, at 6:43 PM, Brent Royal-Gordon via
>>>> swift-evolution
>>>> <swift-evolution at swift.org> wrote:
>>>> 
>>>> Count me among those who liked the ‘Type’ suffix for protocols though.
>>> 
>>> I wonder if we can't change it to a -`like` suffix. Applying that to 2.1 stdlib gives you:
>>> 
>>> AnyCollectionlike
>>> BidirectionalIndexlike
>>> BitwiseOperationslike
>>> Booleanlike
>>> CVarArglike
>>> Collectionlike
>>> Errorlike
>>> FloatingPointlike
>>> ForwardIndexlike
>>> Generatorlike
>>> IntegerArithmeticlike
>>> Integerlike
>>> Intervallike
>>> LazyCollectionlike
>>> LazySequencelike
>>> MirrorPathlike
>>> MutableCollectionlike
>>> OptionSetlike
>>> OutputStreamlike
>>> RandomAccessIndexlike
>>> RangeReplaceableCollectionlike
>>> ReverseIndexlike
>>> Sequencelike
>>> SetAlgebralike
>>> SignedIntegerlike
>>> SignedNumberlike
>>> UnicodeCodeclike
>>> UnsignedIntegerlike
>>> 
>>> Not all of these are perfect, but in some cases that's because they
>>> should arguably be -able protocols (BitwiseOperationsType ->
>>> BitwiseOperable).
>>> 
>>> -- 
>>> Brent Royal-Gordon
>>> Architechies
>>> 
>>> _______________________________________________
>>> swift-evolution mailing list
>>> swift-evolution at swift.org
>>> https://lists.swift.org/mailman/listinfo/swift-evolution
>> 
>> _______________________________________________
>> swift-evolution mailing list
>> swift-evolution at swift.org
>> https://lists.swift.org/mailman/listinfo/swift-evolution
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution

-- 
-Dave



More information about the swift-evolution mailing list