Mic*_*ael 2 io monads functional-programming scala
假设我正在编写一个程序,它读取一些输入,处理它并写入输出.
假设我也有一个功能 def process(input: MyInput): MyOutput
现在我应该使用Readermonad进行输入.
def readAndProcess(reader: MyReader[MyInput]): MyReader[MyOutput] = for(in <- reader) yield process(in)
到目前为止,这么好,但现在我需要在某处写输出.也就是说,我需要一个Writermonad并且可以定义一个函数readProcessAndWrite
def readProcessAndWrite(reader: MyReader[MyInput]): MyWriter[MyOutput]
假设我有一个功能
def write(out: MyOutput, writer: MyWriter[MyOutput]) : MyWriter[MyOutput]
我该如何定义readProcessAndWrite?
def readProcessAndWrite(reader: MyReader[MyInput],
writer: MyWriter[MyOutput]): MyWriter[MyOutput] = ... ???