Stream (abstract data type)
This article needs additional citations for verification. (February 2020) |
In type theory and functional programming, a stream is a potentially infinite analog of a list, given by the coinductive definition:[1][2]
data Stream α = Nil | Cons α (Stream α)
Generating and computing with streams requires lazy evaluation, either implicitly in a lazily evaluated language or by creating and forcing thunks in an eager language. In total languages they must be defined as codata and can be iterated over using (guarded) corecursion.
![](http://upload.wikimedia.org/wikipedia/commons/thumb/4/42/UML_dotnet_streams.svg/220px-UML_dotnet_streams.svg.png)
See also
[edit]References
[edit]- ^ Yamagiwa, Shinichi (2022), Katoh, Naoki; Higashikawa, Yuya; Ito, Hiro; Nagao, Atsuki (eds.), "Stream-Based Lossless Data Compression", Sublinear Computation Paradigm: Algorithmic Revolution in the Big Data Era, Singapore: Springer, pp. 391–410, doi:10.1007/978-981-16-4095-7_16, ISBN 978-981-16-4095-7
- ^ Sangma, Jerry W.; Sarkar, Mekhla; Pal, Vipin; Agrawal, Amit; Yogita (2022-04-01). "Hierarchical clustering for multiple nominal data streams with evolving behaviour". Complex & Intelligent Systems. 8 (2): 1737–1761. doi:10.1007/s40747-021-00634-0. ISSN 2198-6053.