[swift-evolution] [swift-evolution-announce] [Review] SE-0118: Closure Parameter Names and Labels

Kevin Ballard kevin at sb.org
Sat Jul 9 16:56:13 CDT 2016


On Tue, Jul 5, 2016, at 04:10 PM, Chris Lattner wrote:
> 	* What is your evaluation of the proposal?

Strong +1. Overall I like all of the changes listed in this proposal, with some commentary below.

> lines.split(whereSeparator: isAllWhitespace)

I think this is ok, but I'd also be fine with split(where:).

> if roots.contains(where: isPrime) {

I strongly prefer this to the alternatives suggested in this thread. Not only is Erica right about "anywhere" being visible in containsAny(where:) or contains(anyWhere:), but those names also just feel unnecessarily cumbersome. Not only that, but using contains(where:) would be more consistent with first(where:) (which is a strongly related function; contains(where:) returns true iff first(where:) returns non-nil).

> let sum = measurements.reduce(0, +)

I'm very happy to see the closure name being removed here. I never thought the name was pulling any weight, since this function is already a term of art rather than being an english sentence.

> 	* Is the problem being addressed significant enough to warrant a change to Swift?

Yes.

> 	* Does this proposal fit well with the feel and direction of Swift?

Yes.

> 	* If you have used other languages or libraries with a similar feature, how do you feel that this proposal compares to those?

Other languages don't typically have external parameter names.

> 	* How much effort did you put into your review? A glance, a quick reading, or an in-depth study?

A quick reading of the proposal and of the thread to date.

-Kevin Ballard


More information about the swift-evolution mailing list