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

Chris Lattner clattner at apple.com
Fri Apr 15 00:53:48 CDT 2016


> On Apr 14, 2016, at 10:50 PM, Chris Lattner via swift-evolution <swift-evolution at swift.org> wrote:
> 
> On Apr 14, 2016, at 10:40 PM, John McCall <rjmccall at apple.com> wrote:
>>>> To me, the unparenthesized style suggests that the input and output are peers, which feels more natural for the sort of value-to-value transform/predicate where this most commonly occurs.  Parenthesizing the input feels fussier, which contributes to a sense that the argument is just one component to producing the result.
>>>> The parentheses are grammatically unnecessary in most cases (by frequency of use in higher-use programming, not by feature count).  
>>> 
>>> I agree with your point that many simple higher order programming examples (e.g. map, filter, etc) take a single argument.  That said, I don’t agree that this means that we should syntactically privilege this special case.
>> 
>> "Special case" is a loaded phrase.  Why is it a special case as a parameter if it isn't a special case as a result?
> 
> Because, as I tried to explain in my original post, parameters *are* a special case.  The result type of a function is just a type.  The parameter list allows things that types do not: default arguments and variadics.

Parameters also support different API vs internal parameter labels as well.

-Chris



More information about the swift-evolution mailing list