【发布时间】:2016-01-23 23:14:48
【问题描述】:
我说的是这个 Haskell 示例:
main = do
line <- getLine
if null line
then return ()
else do
putStrLn $ reverseWords line
main
是否可以使用IO monad 在 scala 中翻译它?
我想用if 代替return 来理解。我真的不确定用递归调用循环它。听起来 scala 不允许这样做。如果没有,正确的做法是什么?
而且似乎IO 没有filter,即使这样也行不通:
import scalaz._
import effect._
import IO._
for {
line <- readLn if !line.empty
_ <- putStrLn(line)
} yield ()
【问题讨论】: