介绍 我在一些项目中使用了Scalaz 7的迭代,主要用于处理大文件。 我想开始转换到斯卡拉斯stream ,这是旨在取代iteratee包(坦率地说是缺less了很多件,是一种痛苦的使用)。 stream是基于机器 (iteratee思想的另一个变种),这也已经在Haskell中实现 。 我已经使用了一些Haskell机器库,但是机器和stream之间的关系并不是完全明显的(至less对我来说),stream库的文档还是有点稀疏 。 这个问题是关于一个简单的parsing任务,我希望看到实现使用stream而不是iteratees。 如果没有人能够让我知道,我会自己回答这个问题,但是我相信我并不是唯一一个正在(或者至less考虑)这个过渡的人,因为无论如何我都需要完成这个练习,我觉得我不妨公开做。 任务 假设我有一个包含句子的文件,这些句子已经被标记并且标记了词性: no UH , , it PRP was VBD n't RB monday NNP . . the DT equity NN market NN was VBD illiquid JJ . . 每行有一个令牌,单词和词性由一个空格分隔,空行代表句子的边界。 我想parsing这个文件并返回一个句子列表,我们可以将它们表示为string元组列表: List((no,UH), (,,,), (it,PRP), (was,VBD), (n't,RB), (monday,NNP), (.,.)) List((the,DT), (equity,NN), (market,NN), (was,VBD), (illiquid,JJ), (.,.) […]