<div dir="ltr">On Thu, Aug 17, 2017 at 7:51 PM, Erica Sadun <span dir="ltr">&lt;<a href="mailto:erica@ericasadun.com" target="_blank">erica@ericasadun.com</a>&gt;</span> wrote:<br><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><div>What people are doing is taking a real set of values (1, 2, 3, 4, 5, for example), then discarding them via `_ in`, which is different from `Void -&gt; T` or `f(x) = 0 * x`. The domain could just as easily be (Foo(), &quot;b&quot;, đź’©, Â UIColor.red, { x: Int in x^x }). There are too many semantic shifts away from &quot;I would like to collect the execution of this closure n times&quot; for it to sit comfortably.</div></div></blockquote><div><br></div><div>What arguments might help to alleviate this discomfort? Clearly, functions exist that can map this delightfully heterogeneous domain to some sort of range that the user wants. Would you feel better if we wrote instead the following?</div><div><br></div><div>```</div><div>repeatElement((), count: 5).map { UIView() }</div><div>```</div><div><br></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"><span class="HOEnZb"><font color="#888888"><div></div><div>-- E</div></font></span><div><div class="h5"><div><br></div><br><div><blockquote type="cite"><div>On Aug 17, 2017, at 3:53 PM, Xiaodi Wu &lt;<a href="mailto:xiaodi.wu@gmail.com" target="_blank">xiaodi.wu@gmail.com</a>&gt; wrote:</div><br class="m_8972578855228478123Apple-interchange-newline"><div>This is, I would argue, much too limiting in the way of semantics and not at all required by â€śmap”. It’s unclear to me how _any_ result with reference semantics or any function with side effects could be used in a way that comports with that definition.<br><br>On the other hand, just as y = 0x is a function, { _ in Foo() } is a closure that very much does project from a domain to a range. I’m not sure I understand what wins are to be had by having â€ścollect {}” as a synonym for â€śmap { _ in }”.<br><br><div class="gmail_quote"><div dir="ltr">On Thu, Aug 17, 2017 at 16:01 Erica Sadun via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a>&gt; wrote:<br></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"><div><br></div><div><blockquote type="cite"><div>On Aug 17, 2017, at 12:04 PM, Max Moiseev &lt;<a href="mailto:moiseev@apple.com" target="_blank">moiseev@apple.com</a>&gt; wrote:</div><br class="m_8972578855228478123m_3317284721246939440Apple-interchange-newline"><div><div style="word-wrap:break-word"><br><div><blockquote type="cite"><div>On Aug 17, 2017, at 10:05 AM, Erica Sadun via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a>&gt; wrote:</div><br class="m_8972578855228478123m_3317284721246939440Apple-interchange-newline"><div><div style="word-wrap:break-word"><div>Also, for those of you here who haven&#39;t heard my previous rant on the subject, I dislike using map for generating values that don&#39;t depend on transforming a domain to a range. (It has been argued that `_ in` is mapping from `Void`, but I still dislike it immensely)</div></div></div></blockquote><div><br></div><div>Can you please elaborate why (or maybe point me at the rant)? </div></div></div></div></blockquote></div><br><div><br></div></div><div style="word-wrap:break-word"><div>Summary:</div><div><br></div><div>. Since this application is a generator and not a transformative function, `map` is a misfit to usage semantics. It breaks the contract that map means to project from a domain to a range via a function. More languages conventionally use `collect` than `map` to collect n applications of a generator closure</div></div><div style="word-wrap:break-word"><div><br></div><div>-- E</div><div><br></div></div>______________________________<wbr>_________________<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/<wbr>mailman/listinfo/swift-<wbr>evolution</a><br>
</blockquote></div>
</div></blockquote></div><br></div></div></div></blockquote></div><br></div></div>