> Well, from my point of view closure deserves some special syntax and rules.
Not sure I agree with that. Closures are just anonymous functions and so IMO
their syntax should differ from function syntax as little as possible while
retaining clarity. A named function call is written f(x, y) or g((x, y)).
Immediately you know which has two arguments and which has a 2-tuple as its
sole argument. I'm suggesting that for closures we merely transplant this
syntax.
The only question (for me) is whether to include everything including the outer
parentheses, or just everything between the parentheses. I would prefer to
include everything including the outer parentheses because of the additional
clarity (and IMO aesthetic quality) of making this syntax parallel the syntax
enforced in SE 0066 and 0110:
let f1: (Int, Int) -> Double = { (x, y) in ...}
let f2: ((Int, Int)) -> Double = { ((x, y)) in ...}
The closures mirror their declarations, which (if implemented) would make it
clear that the closure preambles are correct and will work as expected. It's
just one fewer thing to have to think about.
> On May 29, 2017, at 2:42 PM, Vladimir.S <[email protected]> wrote:
>
> Well, from my point of view closure deserves some special syntax and rules.
_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution