<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">Xiaodi, Adrian, you are actively pushing so that something that was allowed, well compiled (no runtime issue), and covered actual uses cases, becomes forbidden. Without any developer advantage that would somehow balance the change.</div><div class=""><br class=""></div><div class="">That's called a regression.</div><div class=""><br class=""></div><div class="">And what's the rationale, already? A sense of compiler aesthetics? Since when a sense of compiler aesthetics is more valuable than a sense of code aesthetics? Aren't both supposed to walk together as a pair?</div><div class=""><br class=""></div><div class=""><div class="">Gwendal</div><div class=""><br class=""><div><blockquote type="cite" class=""><div class="">Le 7 juin 2017 à 12:54, Xiaodi Wu &lt;<a href="mailto:xiaodi.wu@gmail.com" class="">xiaodi.wu@gmail.com</a>&gt; a écrit :</div><br class="Apple-interchange-newline"><div class="">IMO, if tuples and argument lists are to be distinguished in any way, it is imperative that f3(+) and f4(+), and some of your other examples, _not_ work.<br class=""><br class="">After all, if a tuple is not an argument list, it should possible to have a function of type ((Int, Int)) -&gt; Int and a function of type (Int, Int) -&gt; Int share the same name (IIUC, it’s a known bug that this does not currently work). Quite simply, there’s a type mismatch if you pass sum1 to f3–what happens if there’s a distinct, overloaded sum1 that takes a single tuple?<br class=""><br class="">Chris’s suggestion restores a syntactic convenience without touching the type system. What you are arguing for is essentially making ((Int, Int)) -&gt; Int and (Int, Int) -&gt; Int synonymous again, either in some or in all contexts.<br class=""><br class=""><br class=""><div class="gmail_quote"><div dir="ltr" class="">On Wed, Jun 7, 2017 at 05:41 Gwendal Roué via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" class="">swift-evolution@swift.org</a>&gt; wrote:<br class=""></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word" class=""><div class=""><blockquote type="cite" class=""><div class="">Le 7 juin 2017 à 12:33, Gwendal Roué &lt;<a href="mailto:gwendal.roue@gmail.com" target="_blank" class="">gwendal.roue@gmail.com</a>&gt; a écrit :</div><br class="m_1801710330914298896Apple-interchange-newline"><div class=""><div style="word-wrap:break-word" class=""><br class=""><div class=""><blockquote type="cite" class=""><div class="">Le 7 juin 2017 à 12:03, Adrian Zubarev via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" target="_blank" class="">swift-evolution@swift.org</a>&gt; a écrit :</div><br class="m_1801710330914298896Apple-interchange-newline"><div class=""><p style="margin:15px 0px;font-family:Helvetica,Arial;font-size:13px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px" class="">Well please no:</p><p style="margin:15px 0px;font-family:Helvetica,Arial;font-size:13px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px" class="">
<code style="font-family:Menlo,Consolas,'Liberation Mono',Courier,monospace;font-size:10pt;border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px;background-color:rgb(248,248,248);color:inherit;border:1px solid rgb(234,234,234);margin:0px 2px;padding:0px 5px;word-break:normal;word-wrap:normal" class=""><span class="m_1801710330914298896Apple-converted-space">&nbsp;</span>let fn2: ((Int, Int)) -&gt; Void = { lhs, rhs in }<span class="m_1801710330914298896Apple-converted-space">&nbsp;</span></code></p><p style="margin:15px 0px;font-family:Helvetica,Arial;font-size:13px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px" class="">Instead use destructuring sugar pitched by Chris Lattner on the other thread:</p><p style="margin:15px 0px;font-family:Helvetica,Arial;font-size:13px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px" class=""><code style="font-family:Menlo,Consolas,'Liberation Mono',Courier,monospace;font-size:10pt;border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px;background-color:rgb(248,248,248);color:inherit;border:1px solid rgb(234,234,234);margin:0px 2px;padding:0px 5px;word-break:normal;word-wrap:normal" class="">let fn2: ((Int, Int)) -&gt; Void = { ((lhs, rhs)) in }</code></p></div></blockquote></div><br class=""><div class=""><div class=""><div class=""><div class="">Despite Chris Lattern being a semi-god, his double-parenthesis suggestion cruelly lacks in terms of user ergonomics. The compiler should be able to deal with the following code snippet, just like Swift 3 does:</div><div class=""><br class=""></div><div class=""><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo;color:rgb(0,143,0)" class=""><span style="font-variant-ligatures:no-common-ligatures" class="">&nbsp; &nbsp;&nbsp;</span><span style="font-variant-ligatures:no-common-ligatures" class="">// two arguments</span></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo" class=""><span style="font-variant-ligatures:no-common-ligatures" class="">&nbsp; &nbsp; </span><span style="font-variant-ligatures:no-common-ligatures;color:#8135a0" class="">func</span><span style="font-variant-ligatures:no-common-ligatures" class=""> f1(</span><span style="font-variant-ligatures:no-common-ligatures;color:#8135a0" class="">_</span><span style="font-variant-ligatures:no-common-ligatures" class=""> closure: (</span><span style="font-variant-ligatures:no-common-ligatures;color:#3c59a7" class="">Int</span><span style="font-variant-ligatures:no-common-ligatures" class="">, </span><span style="font-variant-ligatures:no-common-ligatures;color:#3c59a7" class="">Int</span><span style="font-variant-ligatures:no-common-ligatures" class="">) -&gt; </span><span style="font-variant-ligatures:no-common-ligatures;color:#3c59a7" class="">Int</span><span style="font-variant-ligatures:no-common-ligatures" class="">) { closure(1, 2) }</span></div></div></div></div></div></div></div></blockquote></div></div><div style="word-wrap:break-word" class=""><div class=""><blockquote type="cite" class="">[...]</blockquote><br class=""></div><div class="">Here is the full extent of the remarquable Swift 3 ergonomics. This full snippet compiles in Swift 3:</div><div class=""><br class=""></div><div class=""><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo" class=""><span style="font-variant-ligatures:no-common-ligatures" class="">&nbsp; &nbsp;&nbsp;</span><span style="font-variant-ligatures:no-common-ligatures;color:#8135a0" class="">func</span><span style="font-variant-ligatures:no-common-ligatures" class=""> sum1(</span><span style="font-variant-ligatures:no-common-ligatures;color:#8135a0" class="">_</span><span style="font-variant-ligatures:no-common-ligatures" class=""> lhs: </span><span style="font-variant-ligatures:no-common-ligatures;color:#3c59a7" class="">Int</span><span style="font-variant-ligatures:no-common-ligatures" class="">, </span><span style="font-variant-ligatures:no-common-ligatures;color:#8135a0" class="">_</span><span style="font-variant-ligatures:no-common-ligatures" class=""> rhs: </span><span style="font-variant-ligatures:no-common-ligatures;color:#3c59a7" class="">Int</span><span style="font-variant-ligatures:no-common-ligatures" class="">) -&gt; </span><span style="font-variant-ligatures:no-common-ligatures;color:#3c59a7" class="">Int</span><span style="font-variant-ligatures:no-common-ligatures" class=""> { </span><span style="font-variant-ligatures:no-common-ligatures;color:#8135a0" class="">return</span><span style="font-variant-ligatures:no-common-ligatures" class=""> lhs + rhs }</span></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo" class=""><span style="font-variant-ligatures:no-common-ligatures" class="">&nbsp; &nbsp; </span><span style="font-variant-ligatures:no-common-ligatures;color:#8135a0" class="">func</span><span style="font-variant-ligatures:no-common-ligatures" class=""> sum2(lhs: </span><span style="font-variant-ligatures:no-common-ligatures;color:#3c59a7" class="">Int</span><span style="font-variant-ligatures:no-common-ligatures" class="">, rhs: </span><span style="font-variant-ligatures:no-common-ligatures;color:#3c59a7" class="">Int</span><span style="font-variant-ligatures:no-common-ligatures" class="">) -&gt; </span><span style="font-variant-ligatures:no-common-ligatures;color:#3c59a7" class="">Int</span><span style="font-variant-ligatures:no-common-ligatures" class=""> { </span><span style="font-variant-ligatures:no-common-ligatures;color:#8135a0" class="">return</span><span style="font-variant-ligatures:no-common-ligatures" class=""> lhs + rhs }</span></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo" class=""><span style="font-variant-ligatures:no-common-ligatures" class="">&nbsp; &nbsp; </span><span style="font-variant-ligatures:no-common-ligatures;color:#8135a0" class="">func</span><span style="font-variant-ligatures:no-common-ligatures" class=""> sum3(tuple: (</span><span style="font-variant-ligatures:no-common-ligatures;color:#3c59a7" class="">Int</span><span style="font-variant-ligatures:no-common-ligatures" class="">, </span><span style="font-variant-ligatures:no-common-ligatures;color:#3c59a7" class="">Int</span><span style="font-variant-ligatures:no-common-ligatures" class="">)) -&gt; </span><span style="font-variant-ligatures:no-common-ligatures;color:#3c59a7" class="">Int</span><span style="font-variant-ligatures:no-common-ligatures" class=""> { </span><span style="font-variant-ligatures:no-common-ligatures;color:#8135a0" class="">return</span><span style="font-variant-ligatures:no-common-ligatures" class=""> tuple.0 + tuple.1 }</span></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo" class=""><span style="font-variant-ligatures:no-common-ligatures" class="">&nbsp; &nbsp; </span><span style="font-variant-ligatures:no-common-ligatures;color:#8135a0" class="">func</span><span style="font-variant-ligatures:no-common-ligatures" class=""> sum4(tuple: (lhs: </span><span style="font-variant-ligatures:no-common-ligatures;color:#3c59a7" class="">Int</span><span style="font-variant-ligatures:no-common-ligatures" class="">, rhs: </span><span style="font-variant-ligatures:no-common-ligatures;color:#3c59a7" class="">Int</span><span style="font-variant-ligatures:no-common-ligatures" class="">)) -&gt; </span><span style="font-variant-ligatures:no-common-ligatures;color:#3c59a7" class="">Int</span><span style="font-variant-ligatures:no-common-ligatures" class=""> { </span><span style="font-variant-ligatures:no-common-ligatures;color:#8135a0" class="">return</span><span style="font-variant-ligatures:no-common-ligatures" class=""> tuple.lhs + tuple.rhs }</span></div></div></div><div style="word-wrap:break-word" class=""><div class=""><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo;min-height:13px" class=""><span style="font-variant-ligatures:no-common-ligatures" class=""></span><br class=""></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo;color:rgb(0,143,0)" class=""><span style="font-variant-ligatures: no-common-ligatures;" class="">&nbsp; &nbsp; </span><span style="font-variant-ligatures:no-common-ligatures" class="">// two arguments</span></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo" class=""><span style="font-variant-ligatures:no-common-ligatures" class="">&nbsp; &nbsp; </span><span style="font-variant-ligatures:no-common-ligatures;color:#8135a0" class="">func</span><span style="font-variant-ligatures:no-common-ligatures" class=""> f1(</span><span style="font-variant-ligatures:no-common-ligatures;color:#8135a0" class="">_</span><span style="font-variant-ligatures:no-common-ligatures" class=""> closure: (</span><span style="font-variant-ligatures:no-common-ligatures;color:#3c59a7" class="">Int</span><span style="font-variant-ligatures:no-common-ligatures" class="">, </span><span style="font-variant-ligatures:no-common-ligatures;color:#3c59a7" class="">Int</span><span style="font-variant-ligatures:no-common-ligatures" class="">) -&gt; </span><span style="font-variant-ligatures:no-common-ligatures;color:#3c59a7" class="">Int</span><span style="font-variant-ligatures:no-common-ligatures" class="">) { closure(1, 2) }</span></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo" class=""><span style="font-variant-ligatures:no-common-ligatures" class="">&nbsp; &nbsp; </span><span style="font-variant-ligatures:no-common-ligatures;color:#20809f" class="">f1</span><span style="font-variant-ligatures:no-common-ligatures" class=""> { lhs, rhs </span><span style="font-variant-ligatures:no-common-ligatures;color:#8135a0" class="">in</span><span style="font-variant-ligatures:no-common-ligatures" class=""> lhs + rhs }</span></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo" class=""><span style="font-variant-ligatures:no-common-ligatures" class="">&nbsp; &nbsp; </span><span style="font-variant-ligatures:no-common-ligatures;color:#20809f" class="">f1</span><span style="font-variant-ligatures:no-common-ligatures" class=""> { (lhs, rhs) </span><span style="font-variant-ligatures:no-common-ligatures;color:#8135a0" class="">in</span><span style="font-variant-ligatures:no-common-ligatures" class=""> lhs + rhs }</span></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo" class=""><span style="font-variant-ligatures:no-common-ligatures" class="">&nbsp; &nbsp; </span><span style="font-variant-ligatures:no-common-ligatures;color:#20809f" class="">f1</span><span style="font-variant-ligatures:no-common-ligatures" class=""> { tuple </span><span style="font-variant-ligatures:no-common-ligatures;color:#8135a0" class="">in</span><span style="font-variant-ligatures:no-common-ligatures" class=""> tuple.0 + tuple.1 }</span></div></div></div><div style="word-wrap:break-word" class=""><div class=""><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo" class=""><span style="font-variant-ligatures:no-common-ligatures" class="">&nbsp; &nbsp; </span><span style="font-variant-ligatures:no-common-ligatures;color:#20809f" class="">f1</span><span style="font-variant-ligatures:no-common-ligatures" class=""> { (tuple) </span><span style="font-variant-ligatures:no-common-ligatures;color:#8135a0" class="">in</span><span style="font-variant-ligatures:no-common-ligatures" class=""> tuple.0 + tuple.1 }</span></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo" class=""><span style="font-variant-ligatures:no-common-ligatures" class="">&nbsp; &nbsp; </span><span style="font-variant-ligatures:no-common-ligatures;color:#20809f" class="">f1</span><span style="font-variant-ligatures:no-common-ligatures" class="">(+)</span></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo" class=""><span style="font-variant-ligatures:no-common-ligatures" class="">&nbsp; &nbsp; f1(sum1)</span></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo" class=""><span style="font-variant-ligatures:no-common-ligatures" class="">&nbsp; &nbsp; f1(sum2)</span></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo" class=""><span style="font-variant-ligatures:no-common-ligatures" class="">&nbsp; &nbsp; f1(sum3)</span></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo" class=""><span style="font-variant-ligatures:no-common-ligatures" class="">&nbsp; &nbsp; f1(sum4)</span></div><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo; min-height: 13px;" class=""><span style="font-variant-ligatures:no-common-ligatures" class="">&nbsp;&nbsp; &nbsp;</span><br class="m_1801710330914298896webkit-block-placeholder"></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo;color:rgb(0,143,0)" class=""><span style="font-variant-ligatures: no-common-ligatures;" class="">&nbsp; &nbsp; </span><span style="font-variant-ligatures:no-common-ligatures" class="">// two arguments, with documentation names: identical</span></div></div></div><div style="word-wrap:break-word" class=""><div class=""><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo" class=""><span style="font-variant-ligatures:no-common-ligatures" class="">&nbsp; &nbsp; </span><span style="font-variant-ligatures:no-common-ligatures;color:#8135a0" class="">func</span><span style="font-variant-ligatures:no-common-ligatures" class=""> f2(</span><span style="font-variant-ligatures:no-common-ligatures;color:#8135a0" class="">_</span><span style="font-variant-ligatures:no-common-ligatures" class=""> closure: (</span><span style="font-variant-ligatures:no-common-ligatures;color:#8135a0" class="">_</span><span style="font-variant-ligatures:no-common-ligatures" class=""> a: </span><span style="font-variant-ligatures:no-common-ligatures;color:#3c59a7" class="">Int</span><span style="font-variant-ligatures:no-common-ligatures" class="">, </span><span style="font-variant-ligatures:no-common-ligatures;color:#8135a0" class="">_</span><span style="font-variant-ligatures:no-common-ligatures" class=""> b: </span><span style="font-variant-ligatures:no-common-ligatures;color:#3c59a7" class="">Int</span><span style="font-variant-ligatures:no-common-ligatures" class="">) -&gt; </span><span style="font-variant-ligatures:no-common-ligatures;color:#3c59a7" class="">Int</span><span style="font-variant-ligatures:no-common-ligatures" class="">) { closure(1, 2) }</span></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo" class=""><span style="font-variant-ligatures:no-common-ligatures" class="">&nbsp; &nbsp; </span><span style="font-variant-ligatures:no-common-ligatures;color:#20809f" class="">f2</span><span style="font-variant-ligatures:no-common-ligatures" class=""> { lhs, rhs </span><span style="font-variant-ligatures:no-common-ligatures;color:#8135a0" class="">in</span><span style="font-variant-ligatures:no-common-ligatures" class=""> lhs + rhs }</span></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo" class=""><span style="font-variant-ligatures:no-common-ligatures" class="">&nbsp; &nbsp; </span><span style="font-variant-ligatures:no-common-ligatures;color:#20809f" class="">f2</span><span style="font-variant-ligatures:no-common-ligatures" class=""> { (lhs, rhs) </span><span style="font-variant-ligatures:no-common-ligatures;color:#8135a0" class="">in</span><span style="font-variant-ligatures:no-common-ligatures" class=""> lhs + rhs }</span></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo" class=""><span style="font-variant-ligatures:no-common-ligatures" class="">&nbsp; &nbsp; </span><span style="font-variant-ligatures:no-common-ligatures;color:#20809f" class="">f2</span><span style="font-variant-ligatures:no-common-ligatures" class=""> { tuple </span><span style="font-variant-ligatures:no-common-ligatures;color:#8135a0" class="">in</span><span style="font-variant-ligatures:no-common-ligatures" class=""> tuple.0 + tuple.1 }</span></div></div></div><div style="word-wrap:break-word" class=""><div class=""><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo" class=""><span style="font-variant-ligatures:no-common-ligatures" class="">&nbsp; &nbsp; </span><span style="font-variant-ligatures:no-common-ligatures;color:#20809f" class="">f2</span><span style="font-variant-ligatures:no-common-ligatures" class=""> { (tuple) </span><span style="font-variant-ligatures:no-common-ligatures;color:#8135a0" class="">in</span><span style="font-variant-ligatures:no-common-ligatures" class=""> tuple.0 + tuple.1 }</span></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo" class=""><span style="font-variant-ligatures:no-common-ligatures" class="">&nbsp; &nbsp; </span><span style="font-variant-ligatures:no-common-ligatures;color:#20809f" class="">f2</span><span style="font-variant-ligatures:no-common-ligatures" class="">(+)</span></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo" class=""><span style="font-variant-ligatures:no-common-ligatures" class="">&nbsp; &nbsp; f2(sum1)</span></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo" class=""><span style="font-variant-ligatures:no-common-ligatures" class="">&nbsp; &nbsp; f2(sum2)</span></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo" class=""><span style="font-variant-ligatures:no-common-ligatures" class="">&nbsp; &nbsp; f2(sum3)</span></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo" class=""><span style="font-variant-ligatures:no-common-ligatures" class="">&nbsp; &nbsp; f2(sum4)</span></div></div></div><div style="word-wrap:break-word" class=""><div class=""><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo; min-height: 13px;" class=""><span style="font-variant-ligatures:no-common-ligatures" class="">&nbsp;&nbsp; &nbsp;</span><br class="m_1801710330914298896webkit-block-placeholder"></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo;color:rgb(0,143,0)" class=""><span style="font-variant-ligatures: no-common-ligatures;" class="">&nbsp; &nbsp; </span><span style="font-variant-ligatures:no-common-ligatures" class="">// one tuple argument</span></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo" class=""><span style="font-variant-ligatures:no-common-ligatures" class="">&nbsp; &nbsp; </span><span style="font-variant-ligatures:no-common-ligatures;color:#8135a0" class="">func</span><span style="font-variant-ligatures:no-common-ligatures" class=""> f3(</span><span style="font-variant-ligatures:no-common-ligatures;color:#8135a0" class="">_</span><span style="font-variant-ligatures:no-common-ligatures" class=""> closure: ((</span><span style="font-variant-ligatures:no-common-ligatures;color:#3c59a7" class="">Int</span><span style="font-variant-ligatures:no-common-ligatures" class="">, </span><span style="font-variant-ligatures:no-common-ligatures;color:#3c59a7" class="">Int</span><span style="font-variant-ligatures:no-common-ligatures" class="">)) -&gt; </span><span style="font-variant-ligatures:no-common-ligatures;color:#3c59a7" class="">Int</span><span style="font-variant-ligatures:no-common-ligatures" class="">) { closure((1, 2)) }</span></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo" class=""><span style="font-variant-ligatures:no-common-ligatures" class="">&nbsp; &nbsp; </span><span style="font-variant-ligatures:no-common-ligatures;color:#20809f" class="">f3</span><span style="font-variant-ligatures:no-common-ligatures" class=""> { lhs, rhs </span><span style="font-variant-ligatures:no-common-ligatures;color:#8135a0" class="">in</span><span style="font-variant-ligatures:no-common-ligatures" class=""> lhs + rhs }</span></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo" class=""><span style="font-variant-ligatures:no-common-ligatures" class="">&nbsp; &nbsp; </span><span style="font-variant-ligatures:no-common-ligatures;color:#20809f" class="">f3</span><span style="font-variant-ligatures:no-common-ligatures" class=""> { (lhs, rhs) </span><span style="font-variant-ligatures:no-common-ligatures;color:#8135a0" class="">in</span><span style="font-variant-ligatures:no-common-ligatures" class=""> lhs + rhs }</span></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo" class=""><span style="font-variant-ligatures:no-common-ligatures" class="">&nbsp; &nbsp; </span><span style="font-variant-ligatures:no-common-ligatures;color:#20809f" class="">f3</span><span style="font-variant-ligatures:no-common-ligatures" class=""> { tuple </span><span style="font-variant-ligatures:no-common-ligatures;color:#8135a0" class="">in</span><span style="font-variant-ligatures:no-common-ligatures" class=""> tuple.0 + tuple.1 }</span></div></div></div><div style="word-wrap:break-word" class=""><div class=""><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo" class=""><span style="font-variant-ligatures:no-common-ligatures" class="">&nbsp; &nbsp; </span><span style="font-variant-ligatures:no-common-ligatures;color:#20809f" class="">f3</span><span style="font-variant-ligatures:no-common-ligatures" class=""> { (tuple) </span><span style="font-variant-ligatures:no-common-ligatures;color:#8135a0" class="">in</span><span style="font-variant-ligatures:no-common-ligatures" class=""> tuple.0 + tuple.1 }</span></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo" class=""><span style="font-variant-ligatures:no-common-ligatures" class="">&nbsp; &nbsp; </span><span style="font-variant-ligatures:no-common-ligatures;color:#20809f" class="">f3</span><span style="font-variant-ligatures:no-common-ligatures" class="">(+)</span></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo" class=""><span style="font-variant-ligatures:no-common-ligatures" class="">&nbsp; &nbsp; f3(sum1)</span></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo" class=""><span style="font-variant-ligatures:no-common-ligatures" class="">&nbsp; &nbsp; f3(sum2)</span></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo" class=""><span style="font-variant-ligatures:no-common-ligatures" class="">&nbsp; &nbsp; f3(sum3)</span></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo" class=""><span style="font-variant-ligatures:no-common-ligatures" class="">&nbsp; &nbsp; f3(sum4)</span></div></div></div><div style="word-wrap:break-word" class=""><div class=""><div style="margin: 0px; font-size: 11px; line-height: normal; font-family: Menlo; min-height: 13px;" class=""><span style="font-variant-ligatures:no-common-ligatures" class="">&nbsp;&nbsp; &nbsp;</span><br class="m_1801710330914298896webkit-block-placeholder"></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo;color:rgb(0,143,0)" class=""><span style="font-variant-ligatures: no-common-ligatures;" class="">&nbsp; &nbsp; </span><span style="font-variant-ligatures:no-common-ligatures" class="">// one keyed tuple argument</span></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo" class=""><span style="font-variant-ligatures:no-common-ligatures" class="">&nbsp; &nbsp; </span><span style="font-variant-ligatures:no-common-ligatures;color:#8135a0" class="">func</span><span style="font-variant-ligatures:no-common-ligatures" class=""> f4(</span><span style="font-variant-ligatures:no-common-ligatures;color:#8135a0" class="">_</span><span style="font-variant-ligatures:no-common-ligatures" class=""> closure: ((a: </span><span style="font-variant-ligatures:no-common-ligatures;color:#3c59a7" class="">Int</span><span style="font-variant-ligatures:no-common-ligatures" class="">, b: </span><span style="font-variant-ligatures:no-common-ligatures;color:#3c59a7" class="">Int</span><span style="font-variant-ligatures:no-common-ligatures" class="">)) -&gt; </span><span style="font-variant-ligatures:no-common-ligatures;color:#3c59a7" class="">Int</span><span style="font-variant-ligatures:no-common-ligatures" class="">) { closure((a: 1, b: 2)) }</span></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo" class=""><span style="font-variant-ligatures:no-common-ligatures" class="">&nbsp; &nbsp; </span><span style="font-variant-ligatures:no-common-ligatures;color:#20809f" class="">f4</span><span style="font-variant-ligatures:no-common-ligatures" class=""> { lhs, rhs </span><span style="font-variant-ligatures:no-common-ligatures;color:#8135a0" class="">in</span><span style="font-variant-ligatures:no-common-ligatures" class=""> lhs + rhs }</span></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo" class=""><span style="font-variant-ligatures:no-common-ligatures" class="">&nbsp; &nbsp; </span><span style="font-variant-ligatures:no-common-ligatures;color:#20809f" class="">f4</span><span style="font-variant-ligatures:no-common-ligatures" class=""> { (lhs, rhs) </span><span style="font-variant-ligatures:no-common-ligatures;color:#8135a0" class="">in</span><span style="font-variant-ligatures:no-common-ligatures" class=""> lhs + rhs }</span></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo" class=""><span style="font-variant-ligatures:no-common-ligatures" class="">&nbsp; &nbsp; </span><span style="font-variant-ligatures:no-common-ligatures;color:#20809f" class="">f4</span><span style="font-variant-ligatures:no-common-ligatures" class=""> { tuple </span><span style="font-variant-ligatures:no-common-ligatures;color:#8135a0" class="">in</span><span style="font-variant-ligatures:no-common-ligatures" class=""> tuple.a + tuple.b }</span></div></div></div><div style="word-wrap:break-word" class=""><div class=""><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo" class=""><span style="font-variant-ligatures:no-common-ligatures" class="">&nbsp; &nbsp; </span><span style="font-variant-ligatures:no-common-ligatures;color:#20809f" class="">f4</span><span style="font-variant-ligatures:no-common-ligatures" class=""> { (tuple) </span><span style="font-variant-ligatures:no-common-ligatures;color:#8135a0" class="">in</span><span style="font-variant-ligatures:no-common-ligatures" class=""> tuple.a + tuple.b }</span></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo" class=""><span style="font-variant-ligatures:no-common-ligatures" class="">&nbsp; &nbsp; </span><span style="font-variant-ligatures:no-common-ligatures;color:#20809f" class="">f4</span><span style="font-variant-ligatures:no-common-ligatures" class="">(+)</span></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo" class=""><span style="font-variant-ligatures:no-common-ligatures" class="">&nbsp; &nbsp; f4(sum1)</span></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo" class=""><span style="font-variant-ligatures:no-common-ligatures" class="">&nbsp; &nbsp; f4(sum2)</span></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo" class=""><span style="font-variant-ligatures:no-common-ligatures" class="">&nbsp; &nbsp; f4(sum3)</span></div><div style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo" class=""><span style="font-variant-ligatures:no-common-ligatures" class="">&nbsp; &nbsp; f4(sum4)</span></div><div class=""><span style="font-variant-ligatures:no-common-ligatures" class=""><br class=""></span></div></div></div><div style="word-wrap:break-word" class="">Gwendal<div class=""><br class=""></div></div>_______________________________________________<br class="">
swift-evolution mailing list<br class="">
<a href="mailto:swift-evolution@swift.org" target="_blank" class="">swift-evolution@swift.org</a><br class="">
<a href="https://lists.swift.org/mailman/listinfo/swift-evolution" rel="noreferrer" target="_blank" class="">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br class="">
</blockquote></div>
</div></blockquote></div><br class=""></div></div></body></html>