[swift-evolution] Proposal: CollectionType.cycle property for an infinite sequence

Craig Cruden ccruden at novafore.com
Tue Dec 29 18:29:33 CST 2015


> Could you define what you mean by “stream support?”  Whatever it is, I doubt simply adding an infinitely-repeating sequence type is enough to get you there.


I can guess — but it is only a guess.  

A function defines an infinite “set” of values (like the digits of pi).  A stream is just a special type of traversable (lazy) which does not evaluate until asked for the next in a sequence of the set.  A function defined in a stream will thus only continue calculating next digits when asked for them.  Similarly you could have a collection (head/tail) and you ask for the head and you get it, but the rest (tail) is just the tail as a whole and none of the values in it are really defined until you traverse down to the next head of the rest of the tail.  Once it is evaluated it is stored in memory for future evaluations.  If you were to fully evaluate the function it would never finish, and if it were to finish — you would probably run out of memory.




As usual I created these examples with the Scala 2.8 REPL but I think most if not all should work in 2.7.
> On 2015-12-30, at 7:12:41, Dave Abrahams via swift-evolution <swift-evolution at swift.org> wrote:
> 
> 
>> On Dec 27, 2015, at 11:35 PM, Developer via swift-evolution <swift-evolution at swift.org> wrote:
>> 
>> +1.  Stream support is long overdue.
> 
> Could you define what you mean by “stream support?”  Whatever it is, I doubt simply adding an infinitely-repeating sequence type is enough to get you there.
> 
> -Dave
> 
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20151230/dab981af/attachment.html>


More information about the swift-evolution mailing list