> On 27 Sep 2017, at 01:14, Ben Cohen via swift-evolution 
> <[email protected]> wrote:
> 
> And here are my answers, in a separate email to maintain a shred of 
> separation between objectivity and subjectivity :)
> 
>> On Sep 26, 2017, at 4:12 PM, Ben Cohen via swift-evolution 
>> <[email protected]> wrote:
>> 
>> 1. Is it right to assert that with a “removing” operation, the closure 
>> should return `true` for removal?
> 
> Yes. If the closure returned false for removal a different, less readable, 
> name would be needed for the method.

Yes. I think the opposite would be quite confusing.

>> 2. Is it likely that users will want to switch from out-of- to in-place, and 
>> if so, will having to flip the closure cause confusion/bugs?
> 
> I don’t think so. While the argument for an in-place remove is partly that 
> it’s more efficient than x = x.filter (in addition to 
> reability/discoverability benefits), I think that once both an in- and 
> out-of-place version are available, users will reach immediately for the one 
> they want. The scenario where you were filtering, and then you realize you 
> could do it in-place more efficiently, doesn’t seem to me like it will come 
> up in day-to-day use.

I don’t think so, see next answer.

>> 3. Should we “complete” the matrix of 4 operations, or is it fine for it to 
>> have gaps?
> 
> I think filter(_:) and remove(where:) are sufficient. I don’t think we need 
> to complete the set.

Not only do I think that filter(_:) and remove(where:) are sufficient, I think 
completing the matrix would add more confusion: it increases the API surface 
area for little gain. It’s also easier to start with only remove(where:) and 
add more if experience shows us we need more than to start with the whole 
matrix and be stuck with it, despite negative experience.

>> 4. If you are for completing, what should X and Y be called?
>> 
> 
> One of the reasons I _don’t_ think we should complete the set is that 
> formFilter(_:) will take us into serious jumped-the-shark territory, 
> naming-wise.
> 
> I think there’s an argument for never having had filter, and always having 
> had remove/removed (or possibly select/selected), but don’t think this is 
> important enough to clear the bar for a rename of this magnitude.
> 
> 
> 
> _______________________________________________
> 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

Reply via email to