很容易想象,一个完整的IO程序是由 数据源+处理过程+数据终点: Source->Process->Sink所组成的。我们发现:Process[I,O]本身是无法兼顾Source和Sink的功能。...可能是有副作用的
7 rf: Either[Throwable,A] => Process[F,O], //对运算F[A]返回值的处理函数
8 fb: Process[F,O], /...运算F[A]返回的数据经过rf函数的处理后转入新的状态:正常完成数据输入时运行fb进入新状态、如果输入数据过程中产生异常则运行fl清理战场,释放资源。我们并且改善了Halt,使之返回终止情况信息。...可能是有副作用的
3 rf: Either[Throwable,A] => Process[F,O], //对运算F[A]返回值的处理函数
4 fb: Process[F,O] = Halt...可能是有副作用的
3 rf: Either[Throwable,A] => Process[IO,O], //对运算F[A]返回值的处理函数
4 fb: Process[IO,O] =