[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