至少使用Scalaz 6,如果函数的返回类型与其参数类型不同(且不是其子类型),则不行。这是因为 EnumeratorM 的类型不允许更改迭代器的输入类型。但是,可以“预组合”任意函数与一个迭代器,所以我认为这是可行的方法。也可以使用enumeratee,但Scalaz 6中没有提供此抽象。
EnumeratorM
)。 - Travis Brown