[swift-evolution] [pitch] Eliminate the "T1 -> T2" syntax, require "(T1) -> T2"

Ilya Belenkiy ilya.belenkiy at gmail.com
Fri Apr 15 11:08:51 CDT 2016


I understand the reasoning, but I really like and often use the shorthand
notation. I hope that it stays.

On Fri, Apr 15, 2016 at 12:58 AM Chris Lattner via swift-evolution <
swift-evolution at swift.org> wrote:

> We currently accept function type syntax without parentheses, like:
>
>   Int -> Float
>   String -> ()
>
> etc.  The original rationale aligned with the fact that we wanted to treat
> all functions as taking a single parameter (which was often of tuple type)
> and producing a tuple value (which was sometimes a tuple, in the case of
> void and multiple return values).  However, we’ve long since moved on from
> that early design point: there are a number of things that you can only do
> in a parameter list now (varargs, default args, etc), implicit tuple splat
> has been removed, and  the compiler has long ago stopped modeling function
> parameters this way.  Beyond that, it eliminates one potential style war.
>
> Given all this, I think it makes sense to go for syntactic uniformity
> between parameter list and function types, and just require parenthesis on
> the argument list.  The types above can be trivially written as:
>
>   (Int) -> Float
>   (String) -> ()
>
> Thoughts?
>
> -Chris
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20160415/8d699fef/attachment.html>


More information about the swift-evolution mailing list