Marking the *start* of a closure is more difficult than marking the end of the 
parameter the list. The end of the parameter list and start of the body of a 
closure (lambda expression) can be easily delineated by `{` in my scheme.

> On 23 Dec 2015, at 21:15, Brent Royal-Gordon <br...@architechies.com> wrote:
> 
>> This is very similar to my proposal. We were later suggesting the use of 
>> `=>` in place of `in`, but formerly I suggested essentially what you did 
>> here, but with `func` or `\` in place of `>=` to signify the start of a 
>> closure expression.
> 
> It seems, though, that you thought *all* closures should be marked with this 
> character, even parameterless ones. Whereas I propose that:
> 
>>> A no-parameters closure would not require a `=>`; a bare block would still 
>>> do there.
> 
> Perhaps it's a difference in perspective—I've spent nearly my entire career 
> using languages where closures were common—but I really don't think closures 
> need a big, obvious syntactic marker. All we need is a good way to mark the 
> ambiguous end of the parameter list (the front end if it's outside the 
> closure, the back end if it's inside).
> 
> Closures are not conceptually a terribly difficult feature—they're just 
> omitted from many languages because they're difficult to *implement*. We have 
> to be careful not to make their syntax heavier than it needs to be.
> 
> -- 
> Brent Royal-Gordon
> Architechies
> 

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

Reply via email to