At first glance, this makes totally sense to me, feel free to push this idea on 
the main discussion thread about this dilemma. :)



-- 
Adrian Zubarev
Sent with Airmail

Am 8. Juni 2017 um 19:41:03, Brent Royal-Gordon (br...@architechies.com) 
schrieb:

On Jun 7, 2017, at 3:03 AM, Adrian Zubarev via swift-evolution 
<swift-evolution@swift.org> wrote:

Well please no:


 let fn2: ((Int, Int)) -> Void = { lhs, rhs in } 

Instead use destructuring sugar pitched by Chris Lattner on the other thread:

let fn2: ((Int, Int)) -> Void = { ((lhs, rhs)) in }

I think this suggestion is better than the status quo. I'm wondering, though, 
if we should just drop the outer set of parentheses entirely, unless you're 
also putting types on the parameters. That is, a closure of type `(Int, Int) -> 
T` can look like this:

{ (x: Int, y: Int) in … }

Or it can look like this:

{ x, y in … }

But it *cannot* look like this:

{ (x, y) in … }

The `(x, y)` form can instead be a closure of a type like `((Int, Int)) -> T`, 
which immediately destructures the tuple parameter into separate constants.

-- 
Brent Royal-Gordon
Architechies

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

Reply via email to