<div dir="auto"><div style="color:rgb(49,49,49);word-spacing:1px" dir="auto"><div dir="auto" style="font-size:1rem">Let’s think I little. If the ideia is choose the best name to explain the function:</div><div dir="auto"><br></div><div dir="auto" style="font-size:1rem">If the function drop the nil values and after that does a map operation. Names like dropNilAndMap make sense, right?</div><div dir="auto"><br></div><div dir="auto" style="font-size:1rem">But we are talking about functions that mimics the berraviour of Functional programming languages, doesn’t apear the be “functional” drop nils and make a map in the same operation instead in two steps: dropNils().map{**}</div></div><div dir="auto" style="color:rgb(49,49,49);word-spacing:1px"><br></div><div dir="auto" style="color:rgb(49,49,49);font-size:1rem;word-spacing:1px">I think we only need to make a function (or a property) to easily drop (remove or whatever name) and then feal free to call a map or other function on it. (Or call a map and drop the nils after, how knows)</div><div dir="auto" style="color:rgb(49,49,49);word-spacing:1px"><br></div><div dir="auto" style="color:rgb(49,49,49);font-size:1rem;word-spacing:1px">The role problem is the operation by itself, is confusing because is too specific and the main use for this is the identity operation for just remove the optional level.</div><div dir="auto" style="color:rgb(49,49,49);word-spacing:1px"><br></div><div dir="auto" style="color:rgb(49,49,49);font-size:1rem;word-spacing:1px">Array.ToNonOptional()</div><div dir="auto" style="color:rgb(49,49,49);font-size:1rem;word-spacing:1px">Array.DropNil()</div><div dir="auto" style="color:rgb(49,49,49);font-size:1rem;word-spacing:1px">Array.WithNonOptional()</div><div dir="auto" style="color:rgb(49,49,49);font-size:1rem;word-spacing:1px">Etc...</div><div dir="auto" style="color:rgb(49,49,49);word-spacing:1px"><br></div><div dir="auto" style="color:rgb(49,49,49);font-size:1rem;word-spacing:1px">If we only focus in this functionality, the ‘map’ part is already solved.</div><div dir="auto" style="color:rgb(49,49,49);font-size:1rem;word-spacing:1px"><br></div></div><div><br><div class="gmail_quote"><div>Em ter, 21 de nov de 2017 às 08:47, Benjamin G via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>&gt; escreveu:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>I have a question regarding the general term &quot;compact&quot; vs something more specific like &quot;remove nil&quot; : <div>Could we imagine other usages on different types for &quot;compact&quot; ?</div><div><br></div><div>map / flatmap has the whole category theory behind it, making it meaningful for many different types. &quot;Filter&quot; is also generic, because the operation of filtering has a wide range of application. </div><div><br></div><div>&quot;Compact&quot;, like Tino suggested, would have the general meaning of &quot;reducing the size by removing similar elements&quot;. Removing nils doesn&#39;t seem to be a special case of this general definition. </div><div><br></div><div>If we give &quot;compact&quot; the strict definition of &quot;removing nil&quot;, then i don&#39;t understand the need for a general term, instead of something like &quot;dropNils&quot; (not much longer to write).</div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Nov 21, 2017 at 10:47 AM, Tino Heth via swift-evolution <span>&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:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">My favorite would be a variation of Scalas choice (collect / collectResults).<br>
The word compact (or similar choices like condense, squeeze, pack, compress…) always remind me on compression — my first association of „compact“ would be a transform that turns [1, 2, 2, 3] into [1, 2, 3] (like the shell tool uniq).<br>
But there’s a long list of verbs with similar meaning, so if there’s a consensus for compact (or compacted…), I join that camp.<br>
<div class="m_-6827864556965686767HOEnZb"><div class="m_-6827864556965686767h5">_______________________________________________<br>
swift-evolution mailing list<br>
<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a><br>
<a href="https://lists.swift.org/mailman/listinfo/swift-evolution" rel="noreferrer" target="_blank">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br>
</div></div></blockquote></div><br></div>
_______________________________________________<br>
swift-evolution mailing list<br>
<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a><br>
<a href="https://lists.swift.org/mailman/listinfo/swift-evolution" rel="noreferrer" target="_blank">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br>
</blockquote></div></div>