<div dir="ltr">I&#39;m for this proposal, but not for the syntax. If this proposal is mutually exclusive with Bartlomiej&#39;s then I am -1 on Douglas&#39;.<br><br>I was initially against _, but it is necessary to disambiguate cases like this:<br><br>    naming a function: <font face="monospace, monospace">MyStruct.test(_),</font><br>    calling a function: <font face="monospace, monospace">MyStruct.test()</font><br><br>However I think that the syntax is closer to something we&#39;d expect in Objective-C than in Swift. I wonder if it would make sense to someone unfamiliar with Objective-C.<br><br>Consider:<br><font face="monospace, monospace">    struct MyStruct {<br>        static func test(a: Int, _ b: Int, _ c: Int) {}<br>    }<br>    MyStruct.test(1,2,3) // calling the function<br>    MyStruct.test(_:_:_) // naming the function<br></font><br>In this case I would expect to name the function like one of these:<br><font face="monospace, monospace">    MyStruct.test(_,_,_)</font><div><span style="font-family:monospace,monospace">    MyStruct.test(,,)</span><font face="monospace, monospace"><br></font></div><div><br>I would +1 this proposal if the syntax was like this:<br><font face="monospace, monospace">    let fn1 = someView.insertSubview(_,aboveSubview:_)<br>    let fn = someView.insertSubview(_,at:_)</font><div><br>Instead of:<br><font face="monospace, monospace">    let fn1 = someView.insertSubview(_:aboveSubview:)<br>    let fn = someView.insertSubview(_:at:)</font><div><br>I think it&#39;s more consistent with other *Swift* function syntax.<br>Additionally it is compatible with the syntax Bartlomiej proposes (see fn1).<br><br></div><div>Perhaps you can make the _ optional (for disambiguation), but commas should be consistent with declaration/calling syntax.<br><br>On Tue, Jan 12, 2016 at 8:54 AM, Douglas Gregor via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>&gt; wrote:<br>&gt;<br>&gt;<br>&gt; On Jan 11, 2016, at 1:53 PM, Tino Heth &lt;<a href="mailto:2th@gmx.de">2th@gmx.de</a>&gt; wrote:<br>&gt;<br>&gt; We discussed this a looooong while back and decided that we wanted the ‘_’ to emphasize that there is an argument there. The difference between “foo(:bar:)” and “foo(bar:)” is barely visible.<br>&gt;<br>&gt; That is true, but I think it is very uncommon to have such a set of methods — and afaics, it would violate the guidelines for method names.<br>&gt;<br>&gt; But speaking of additional characters that might be useful:<br>&gt; What about the parameter types? When they are needed to identify the exact function, it would be nice if they could be included as well.<br>&gt;<br>&gt; foo(bar:(Int))<br>&gt; (that&#39;s why I wanted to avoid the parenthesis in the first place…)<br>&gt;<br>&gt;<br>&gt; It’s grammatically ambiguous if you don’t have the “:)” at the end and, IMO, it’s not important enough to have special syntax for this: one can still coerce to a specific function type.<br>&gt;<br>&gt; - Doug<br>&gt;<br>&gt;<br>&gt;<br>&gt; _______________________________________________<br>&gt; swift-evolution mailing list<br>&gt; <a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a><br>&gt; <a href="https://lists.swift.org/mailman/listinfo/swift-evolution">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br>&gt;<br></div></div></div></div>