Pipes by Example
With the Haskell Streaming Library War waging around us, we will choose a side, dive into Pipes, and build a “working programmers” understanding of what Pipes is and how we can use it in our day-to-day programming.
Pipes is at its core a very general library, and can be used to solve a variety of problems far beyond streaming. It’s a useful replacement for a number of programming patterns that most programmers encounter day to day, including logging, working with cooperative programs (such as callbacks), and of course, parsing.
This talk will explain the building block functions and types used to construct and evaluate Pipes, using a number of examples drawn from both the pipes library itself, and other sources. We will learn how to reason and compose pipes, a key requirement for any functional program.
By the end, we shall see that pipes is a useful addition to the Haskell toolchest, that has general application to a range of problems.