# How to use Streaming package in v11.1?

I am trying to use the streaming package for lazy list operations demonstrated in this post. But I found that the package was significantly changed in version 11. After some observations, I found that LazyRange was moved to StreamingListAPILazyLazyRange, etc. However I encountered two problems in trivial tasks.

### Simple Tests

Here are a few simple tests to check that the patch worked (the patch loads Streaming so one does not need to do that again, and actually should not).

ll = StreamingLazyListLazyListCreate[Range[100000], Byte[10000]]


Compute total:

Total @ ll

(*  5000050000 *)


A different way to do that:

Module[{sum = 0}, Scan[(sum += #) &, ll]; sum]

(*  5000050000 *)


Perform a chain of lazy transforms:

squared = Map[#^2 &, ll]
added = Map[# + 1 &, squared]


Convert to normal list:

Normal @ primes // Short

(*  {2,5,17,37,101,197,<<6645>>,9992001601,9995200577,9996800257,9998800037,9999200017} *)


### Notes

Note that the patch has not been really tested more than very basic tests like the ones shown above. Please let me know if it does not work for you in some cases.

Note also, that Streaming` itself is undocumented functionality, for which there are no guarantees that it will not change in the future, or for that matter be present there at all. So use it at your own risk.

However, any feedback is very much appreciated.

• B.t.w., I just checked that your examples in the question do work correctly with the patch. – Leonid Shifrin Aug 24 '17 at 23:07
• Thank you very much! – happy fish Aug 25 '17 at 0:34
• @happyfish You are welcome! Thanks for the accept. Let me know if you run into issues. – Leonid Shifrin Aug 25 '17 at 7:47