How about this:
array.removeEvery(3)
array.removeEvery{ $0 > 3 }
I think it preserves the meaning while it reads nicely. However "every" has no
precedent in other functions, as far as I know.
> Am 10.04.2017 um 04:32 schrieb Ben Cohen via swift-evolution
> <[email protected]>:
>
>
>>> On Apr 8, 2017, at 5:41 PM, Brent Royal-Gordon <[email protected]>
>>> wrote:
>>>
>>> On Apr 8, 2017, at 12:44 PM, Xiaodi Wu via swift-evolution
>>> <[email protected]> wrote:
>>>
>>> +1. Perfect. Let's not bikeshed this and get it done!
>>
>>
>> Sorry, I'm going to have to insist on bikeshedding.
>>
>> `equalTo:` is kind of ugly and has no precedent in the standard library.
>> Similar APIs seem to either leave the parameter unlabeled or use `of:` (as
>> in `index(of:)`). I think unlabeled is probably the right answer here.
>>
>
> I think removeAll(of:) works well for the equatable value version.
>
> FWIW of all the ideas from the all thread, containsOnly(_:) for the equatable
> value version works for me. It has a nice symmetry: contains(3) vs
> containsOnly(3).
>
>> The main shortcoming I can see is that if you see:
>>
>> array.removeAll(3)
>>
>
> Personally don’t feel good about an unlabelled version. It doesn’t read
> right. Remove all three what?
>
>> You might think `3` is either an index or a count. But neither of those
>> actually make sense:
>>
>> * It can't be an index because then `All` would have no meaning. There's
>> only ever one thing at a given index. Besides, indices are almost always
>> marked with `at:` or another parameter label.
>> * It can't be a count because `All` is already a count. What could "remove
>> all 3" possibly mean if the array doesn't happen to have three elements?
>>
>> And this is only a problem if the value happens to be an integer. If it's
>> anything else, the type makes clear that this can't possibly be an index or
>> count; it must be an element.
>>
>> (But if you really do think this is insurmountable, `removeAll(of: 3)` *is*
>> impossible to misinterpret and fits in better than `removeAll(equalTo:)`.)
>>
>> (P.S. The existing oddness of `removeFirst(_:)` compared to `removeFirst()`
>> and `removeAll()` is why I proposed last year that it be renamed to
>> `removePrefix(_:)`, which matches the count-taking `prefix(_:)` method.)
>>
>> --
>> Brent Royal-Gordon
>> Architechies
>>
>
> _______________________________________________
> swift-evolution mailing list
> [email protected]
> https://lists.swift.org/mailman/listinfo/swift-evolution
_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution