<html><head><style>
body {
        font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
        padding:1em;
        margin:auto;
        background:#fefefe;
}
h1, h2, h3, h4, h5, h6 {
        font-weight: bold;
}
h1 {
        color: #000000;
        font-size: 28pt;
}
h2 {
        border-bottom: 1px solid #CCCCCC;
        color: #000000;
        font-size: 24px;
}
h3 {
        font-size: 18px;
}
h4 {
        font-size: 16px;
}
h5 {
        font-size: 14px;
}
h6 {
        color: #777777;
        background-color: inherit;
        font-size: 14px;
}
hr {
        height: 0.2em;
        border: 0;
        color: #CCCCCC;
        background-color: #CCCCCC;
display: inherit;
}
p, blockquote, ul, ol, dl, li, table, pre {
        margin: 15px 0;
}
a, a:visited {
        color: #4183C4;
        background-color: inherit;
        text-decoration: none;
}
#message {
        border-radius: 6px;
        border: 1px solid #ccc;
        display:block;
        width:100%;
        height:60px;
        margin:6px 0px;
}
button, #ws {
        font-size: 12 pt;
        padding: 4px 6px;
        border-radius: 5px;
        border: 1px solid #bbb;
        background-color: #eee;
}
code, pre, #ws, #message {
        font-family: Monaco;
        font-size: 10pt;
        border-radius: 3px;
        background-color: #F8F8F8;
        color: inherit;
}
code {
        border: 1px solid #EAEAEA;
        margin: 0 2px;
        padding: 0 5px;
}
pre {
        border: 1px solid #CCCCCC;
        overflow: auto;
        padding: 4px 8px;
}
pre > code {
        border: 0;
        margin: 0;
        padding: 0;
}
#ws { background-color: #f8f8f8; }
.bloop_markdown table {
border-collapse: collapse;
font-family: Helvetica, arial, freesans, clean, sans-serif;
color: rgb(51, 51, 51);
font-size: 15px; line-height: 25px;
padding: 0; }
.bloop_markdown table tr {
border-top: 1px solid #cccccc;
background-color: white;
margin: 0;
padding: 0; }
.bloop_markdown table tr:nth-child(2n) {
background-color: #f8f8f8; }
.bloop_markdown table tr th {
font-weight: bold;
border: 1px solid #cccccc;
margin: 0;
padding: 6px 13px; }
.bloop_markdown table tr td {
border: 1px solid #cccccc;
margin: 0;
padding: 6px 13px; }
.bloop_markdown table tr th :first-child, table tr td :first-child {
margin-top: 0; }
.bloop_markdown table tr th :last-child, table tr td :last-child {
margin-bottom: 0; }
.bloop_markdown blockquote{
border-left: 4px solid #dddddd;
padding: 0 15px;
color: #777777; }
blockquote > :first-child {
margin-top: 0; }
blockquote > :last-child {
margin-bottom: 0; }
code, pre, #ws, #message {
word-break: normal;
word-wrap: normal;
}
hr {
display: inherit;
}
.bloop_markdown :first-child {
-webkit-margin-before: 0;
}
code, pre, #ws, #message {
font-family: Menlo, Consolas, Liberation Mono, Courier, monospace;
}
.send { color:#77bb77; }
.server { color:#7799bb; }
.error { color:#AA0000; }</style></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div class="bloop_markdown"><p>It’s a very good point I haven’t seen at first glance. Therefore, how about making the <code>.</code> optional in scenarios where the compiler can safely infer the chain:</p>
<pre><code class="swift">someArray.map {
…
} filter {
…
} flatMap {
…
}
// and
someArray.map { … } filter { … } flatMap { … }
</code></pre>
<p>And still keep the <code>.</code> otherwise:</p>
<pre><code class="swift">someArray
.map { … }
.filter { … }
.flatMap { … }
</code></pre>
<p>Besides, I’m only talking about the chained closures. Removing the dot in other scenarios is not part of this talk.</p>
<hr>
<p>Plus I know such additional sugar changes are on the bottom of the list. I didn’t want to forget the idea until it’s time to discuss things like that. </p>
<p></p></div><div class="bloop_original_html"><style>body{font-family:Helvetica,Arial;font-size:13px}</style><div id="bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px; color: rgba(0,0,0,1.0); margin: 0px; line-height: auto;"><br></div> <br> <div id="bloop_sign_1472457580978496000" class="bloop_sign"><div style="font-family:helvetica,arial;font-size:13px">-- <br>Adrian Zubarev<br>Sent with Airmail</div></div> <br><p class="airmail_on">Am 29. August 2016 um 05:17:49, Xiaodi Wu (<a href="mailto:xiaodi.wu@gmail.com">xiaodi.wu@gmail.com</a>) schrieb:</p> <blockquote type="cite" class="clean_bq"><span><div><div></div><div>
<title></title>
<div dir="ltr">What problem are you trying to solve by proposing
this change? It seems like it would get very confusing to
read, so without a compelling use case I don't think this would be
a good idea.
<div><br></div>
<div>Further, more often than not, chained closures like this are
on separate lines (at least how I use them, which I don't think is
rare), and this change could not possibly work in that coding
style. This means that if your proposal were adopted, the resulting
code would be more brittle because a newline would break the code
where previously it didn't. So I'd be -1 for this change.</div>
<div><br></div>
<div>In any case, sugar is really low on the list of priorities,
even for the next stage of Swift evolution. Let's focus our
attention on the priorities already identified for this release,
which would be a *huge* advancement if they get accomplished.</div>
<div><br></div>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Sun, Aug 28, 2016 at 1:15 PM, Adrian
Zubarev via swift-evolution <span dir="ltr"><<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div style="word-wrap:break-word">
<div>
<p>This is a small pitch for stage 2 (or even another Swift
release, if the community likes this change).</p>
<p>We all love the trailing closure plus the ability to execute the
next method with another trailing closure.</p>
<pre><code>someArray.map { … }.filter { … }.flatMap { … }
</code></pre>
<p>Wouldn’t be great if we could remove the leading <code>.</code>
after the trailing closure to get similar syntax to <code>if bool {
… } else { … }</code>?</p>
<pre><code>someArray.map { … } filter { … } flatMap { … }
</code></pre></div>
<div>
<div style="font-family:Helvetica,Arial;font-size:13px;color:rgba(0,0,0,1.0);margin:0px;line-height:auto">
<span class=""><font color="#888888"><br></font></span></div>
<span class=""><font color="#888888"><br></font></span>
<div>
<div style="font-family:helvetica,arial;font-size:13px">
<span class=""><font color="#888888">-- <br>
Adrian Zubarev<br>
Sent with Airmail</font></span></div>
</div>
</div>
</div>
<br>
______________________________<wbr>_________________<br>
swift-evolution mailing list<br>
<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a><br>
<a href="https://lists.swift.org/mailman/listinfo/swift-evolution" rel="noreferrer" target="_blank">https://lists.swift.org/<wbr>mailman/listinfo/swift-<wbr>evolution</a><br>
<br></blockquote>
</div>
<br></div>
</div>
</div></div></span></blockquote></div><div class="bloop_markdown"><p></p></div></body></html>