管道

正如 hackage 頁面描述:

管道是一個乾淨而強大的流處理庫,可讓你構建和連線可重用的流元件

通過流程實現的程式通常可以簡潔和可組合,簡單,短的功能允許你在 Haskell 型別系統的支援下輕鬆插入或退出功能。

await::Monad m => Consumer' a m a

從上游拉取一個值,其中 a 是我們的輸入型別。

yield::Monad m => a -> Producer' a m ()

生成一個值,其中 a 是輸出型別。

強烈建議你閱讀嵌入式 Pipes.Tutorial 軟體包,它可以很好地概述管道的核心概念以及 ProducerConsumerEffect 如何相互作用。