<head></head><body>Or new AnySequence constructors? So the sequence can be generated more than once.<div><div><br></div><div>let a = AnySequence(from: 1){ $0 * 2 }.prefix(10)<br>print(Array(a)) //&nbsp;[1, 2, 4, 8, 16, 32, 64, 128, 256, 512]<br><br>let b = AnySequence(from: 10){ $0 == 0 ? nil : $0 - 1 }<br>print(Array(b)) //&nbsp;[10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]<br></div><div><br></div><div><br></div><div>Code as implemented in Swift 2.2:</div><div><div><br></div><div>extension AnySequence {<br> &nbsp;init(from: Element, applying: (Element) -&gt; Element) {<br> &nbsp; &nbsp;self.init({ () -&gt; AnyGenerator&lt;Element&gt; in<br> &nbsp; &nbsp; &nbsp;var current: Element?<br> &nbsp; &nbsp; &nbsp;return AnyGenerator{<br> &nbsp; &nbsp; &nbsp; &nbsp;current = current.map(applying) ?? from<br> &nbsp; &nbsp; &nbsp; &nbsp;return current<br> &nbsp; &nbsp; &nbsp;}<br> &nbsp; &nbsp;})<br> &nbsp;}<br> &nbsp;<br> &nbsp;init(from: Element, applying: (Element) -&gt; Element?) {<br> &nbsp; &nbsp;self.init({ () -&gt; AnyGenerator&lt;Element&gt; in<br> &nbsp; &nbsp; &nbsp;var current: Element?<br> &nbsp; &nbsp; &nbsp;return AnyGenerator{<br> &nbsp; &nbsp; &nbsp; &nbsp;current = current.map(applying) ?? from<br> &nbsp; &nbsp; &nbsp; &nbsp;return current<br> &nbsp; &nbsp; &nbsp;}<br> &nbsp; &nbsp;})<br> &nbsp;}<br>}<br></div><div><br></div><br><!-- <signature> --><b>Patrick Smith</b><br><!-- </signature> --></div></div><div class="gmail_quote">
  On May 6 2016, at 7:27 am, Brent Royal-Gordon via swift-evolution &lt;swift-evolution@swift.org&gt; wrote:
  <br>
  <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
    <p>&gt; One idea that came out of the core team discussion was something like:<br>&gt; <br>&gt;    sequence(from: 0) { $0 += 42 }<br>&gt; <br>&gt; Since it returns a sequence.</p>
<p>It definitely occurred to me that this was kind of just a way to construct a generic iterator. Maybe a new AnyIterator (I believe there is such a thing) constructor?</p>
<p>-- <br>Brent Royal-Gordon<br>Sent from my iPhone<br>_______________________________________________<br>swift-evolution mailing list<br>swift-evolution@swift.org<br>https://lists.swift.org/mailman/listinfo/swift-evolution</p>
  </blockquote>
</div></body>