> On Jul 1, 2016, at 7:37 AM, Brad Hilton via swift-evolution 
> <swift-evolution@swift.org> wrote:
> 
>> What is your evaluation of the proposal?
> 
> -1. Argument labels can have meaning and are very useful, especially for 
> default parameter names in closures:
> 
> ```// Declaration
> func handleResponse(handler: (response: Response) -> ())
> 
> // Callsite
> handleResponse { response in // response automatically implied as the 
> parameter name, clarifying usage.
>  ...
> }
> ```
> 
> I’d prefer we leave the existing behavior or consider the alternative 
> solution to prohibit implicit subtyping.
> 
>> Does this proposal fit well with the feel and direction of Swift?
> 
> I don’t feel that it does. I’ve always felt that being able to declare 
> function types with named parameters was a powerful feature that allowed more 
> expressivity in the language.
> 
> ``` // Clear that the first String argument is the message and that the 
> second is the sender
> let messageHandler: (message: String, sender: String) -> ()
> 
> // Not clear what these parameters are
> let messageHandler: (String, String) -> ()```
> 

Would a way of specifying argument labels as part of the variable name help? 
That is, making variables have compound names like functions when they have 
function type? E.g.

let messageHandler(message:sender:) : (String, String) -> ()

Or more commonly,

let messageHandler(message:sender:) = … // something resulting in type (String, 
String) -> ()

This would achieve the goal of taking labels out of types, but still have them 
present and relevant as part of names.


>> If you have used other languages or libraries with a similar feature, how do 
>> you feel that this proposal compares to those?
> 
> The closest comparison I can think of are Objective-C selectors, but these 
> are more powerful and type-safe. I think it’s a real strength of the language.
> 
>> How much effort did you put into your review? A glance, a quick reading, or 
>> an in-depth study?
> 
> A quick reading, and I have used function declarations with and without 
> labels extensively.
> 
>> Hello Swift community,
>> 
>> The review of "SE-0111: Remove type system significance of function argument 
>> labels" begins now and runs through July 4. The proposal is available here:
>> 
>> https://github.com/apple/swift-evolution/blob/master/proposals/0111-remove-arg-label-type-significance.md
>> 
>> Reviews are an important part of the Swift evolution process. All reviews 
>> should be sent to the swift-evolution mailing list at
>> 
>> https://lists.swift.org/mailman/listinfo/swift-evolution
>> 
>> or, if you would like to keep your feedback private, directly to the review 
>> manager.
>> 
>> What goes into a review?
>> 
>> The goal of the review process is to improve the proposal under review 
>> through constructive criticism and contribute to the direction of Swift. 
>> When writing your review, here are some questions you might want to answer 
>> in your review:
>> 
> 
>> * Is the problem being addressed significant enough to warrant a change to 
>> Swift?
>> * Does this proposal fit well with the feel and direction of Swift?
>> * If you have used other languages or libraries with a similar feature, how 
>> do you feel that this proposal compares to those?
>> * How much effort did you put into your review? A glance, a quick reading, 
>> or an in-depth study?
>> 
>> More information about the Swift evolution process is available at
>> 
>> https://github.com/apple/swift-evolution/blob/master/process.md
>> 
>> Thank you,
>> 
>> -Chris Lattner
>> Review Manager
>> 
>> 
>> 
>> 
>> 
> _______________________________________________
> swift-evolution mailing list
> swift-evolution@swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution

_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to