15 Stream processing and incremental I/O

This chapter covers

  • Examining the limitations of imperative I/O
  • Covering an expressive approach to stream transformations
  • Introducing effectful streaming computations
  • Explaining resource safety

We mentioned in the introduction to part 4 that functional programming is a complete paradigm. Every imaginable program can be expressed functionally, including programs that interact with the external world—but it would be disappointing if the IO type were the only way of constructing such programs. IO and ST work by simply embedding an imperative programming language into the purely functional subset of Scala. While programming within the IO monad, we have to reason about our programs, much like we would in ...

Get Functional Programming in Scala, Second Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.