【发布时间】:2013-02-28 03:20:17
【问题描述】:
假设我有一个名为 processOne 的单子函数,定义如下:
def processOne(input: Input): Either[ErrorType, Output] = ...
给定一个“Inputs”列表,我想返回一个对应的“Outputs”列表,包裹在Either中:
def processMany(inputs: Seq[Input]): Either[ErrorType, Seq[Output]] = ...
processMany 将为它的每个输入调用processOne,但是,我希望它在processOne 第一次(如果有)返回Left 时终止,并返回Left,否则返回带有输出列表的Right。
我的问题:实现processMany 的最佳方式是什么?是否可以使用 for 表达式来完成此行为,或者我是否有必要自己递归地迭代列表?
【问题讨论】: