Fast and simple stream library for Elm. Create streams of data or flatten multiple operations over lists.
Streams flatten operations like map and filter so you don't have to iterate through a stream multiple times like a list.
import Stream
Stream.range 1 1000
|> Stream.map (\n -> n * 2)
|> Stream.filter (\n -> n > 10)
|> Stream.take 3
|> Stream.toList == [12, 14, 16]You can use streams with lists of data too.
[1, 2, 3, 4, 5]
|> Stream.fromList
|> Stream.map (\n -> 2 ^ n)
|> Stream.filter (\n -> n > 8)
|> Stream.toList == [16, 32]