我们在这里采用简单的例子(伪代码)
def readnonfp(): String = {
nonMonadicIO.readFile("somefile")
}
def readfp(): IO[String] = {
monadicIO.readFile("somefile")
}
现在可能会像这样组成
length(readnonfp())
readnonfp >>= length
这两者究竟有什么区别? 什么是IO monad擅长的,而不是IO的对应方式?