<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Feb 2, 2016 at 7:59 PM, Dave Abrahams via swift-evolution <span dir="ltr">&lt;<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a>&gt;</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"><span class=""><br>
on Tue Feb 02 2016, Jordan Rose &lt;<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>&gt; wrote:<br>
<br>
&gt;&gt; On Feb 2, 2016, at 17:28, David Owens II via swift-evolution<br>
&gt;&gt; &lt;<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;&gt; On Feb 2, 2016, at 4:54 PM, Dave Abrahams via swift-evolution<br>
&gt;<br>
&gt;&gt;&gt; &lt;<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a><br>
</span>&gt;&gt;&gt; &lt;mailto:<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>&gt;&gt;<br>
<div><div class="h5">&gt;&gt;&gt; wrote:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; Similarly,<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; let content = listItemView.text.trimming(characters: .whitespaceAndNewlines)<br>
&gt;&gt;&gt;&gt;<br>
&gt;&gt;&gt;&gt; At least I have some context at the call site what the purpose of<br>
&gt;&gt;&gt;&gt; .whitespaceAndNewlines.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; You wouldn&#39;t say &quot;go to the garden and trim the plant: rhododendrons&quot;.<br>
&gt;&gt;&gt; It isn&#39;t necessary for comprehension.  Why do you feel characters: is<br>
&gt;&gt;&gt; necessary here?<br>
&gt;&gt;<br>
&gt;&gt; Because unlike the English phrase, &quot;trimming&quot; does not have an<br>
&gt;&gt; implicit object set based on the context of a string; what else<br>
&gt;&gt; would you typically trim in a garden other than plant life? I could<br>
&gt;&gt; naturally create an API that allows trimming by a line range or<br>
&gt;&gt; string content, as an example.<br>
&gt;&gt;<br>
&gt;&gt; &quot;public func foo() {}&quot;.trimmed(text: &quot;public &quot;)<br>
&gt;&gt; longContentWithKnownPreamble.trimmed(lines: 0..&lt;5)<br>
&gt;&gt;<br>
&gt;&gt; We could make these different APIs as opposed to overloads, though<br>
&gt;&gt; I&#39;m not convinced that they are not simply different ways to trim<br>
&gt;&gt; content.<br>
&gt;<br>
&gt; That&#39;s actually why this one is &quot;trimming&quot;, not &quot;trimmed&quot;. &quot;trimming&quot;<br>
&gt; allows a direct object; &quot;trimmed&quot; does not.<br>
&gt;<br>
&gt; I don&#39;t really have a problem with this overload set, although<br>
&gt; admittedly I can&#39;t tell if we&#39;re trimming prefixes, suffixes, or both,<br>
&gt; and I would hope that&#39;s consistent between the two.<br>
&gt;<br>
&gt; inputText.trimming(.whitespaceAndNewlines)<br>
&gt; inputText.trimming(&quot;public &quot;)<br>
&gt;<br>
&gt; These are both perfectly good noun phrases in English, too: &quot;[get me]<br>
&gt; the inputText, trimming whitespace and newlines&quot; and &quot;[get me] the<br>
&gt; inputText, trimming &#39;public &#39;&quot;.<br>
&gt;<br>
&gt; (But to play David&#39;s Advocate, it also seems perfectly reasonable in<br>
&gt; English to say &quot;[get me] the inputText, trimming whitespace and<br>
&gt; newline characters&quot; and &quot;[get me] the inputText, trimming the string<br>
&gt; &#39;public &#39;&quot;.)<br>
<br>
</div></div>Back to Strunk &amp; White.  Yes, people often use more words than<br>
necessary, so it sounds normal.  These two aren&#39;t so bad, but it&#39;s death<br>
by a thousand cuts.<div class=""><div class="h5"><a href="https://lists.swift.org/mailman/listinfo/swift-evolution" rel="noreferrer" target="_blank"></a></div></div></blockquote><div><br></div><div><span style="font-size:13px">And now it&#39;ll be death by a thousand command-clicks. :) </span> </div></div><br></div></div>