寻找一个IO Monad
例如,从Functional Programming in Scala,我创建了一个SBT项目来测试IO.scala
:评估`readLine`在SBT
def ReadLine: IO[String] = IO { readLine }
def PrintLine(msg: String): IO[Unit] = IO { println(msg) }
def converter: IO[Unit] = for {
_ <- PrintLine("Enter a temperature in degrees fahrenheit: ")
d <- ReadLine.map(_.toDouble)
_ <- PrintLine(fahrenheitToCelsius(d).toString)
} yield()
但是,当我运行console
从SBT与REPL访问上面的类,我想:
scala> val echo = Util.ReadLine.flatMap(Util.PrintLine)
echo: common.I01.IO[Unit] = [email protected]
我期待被提示输入在文本输入(通过readLine
),但我看到,我的理解,简单的匿名函数/类。
我该如何测试上面的代码?
谢谢。当你说“宇宙的末日是REPL会议”时,你能否详细说明一下?在几年前扫描Haskell书籍之前,我曾听过宇宙术语。 –
我刚刚清理了一下术语,并添加了“宇宙末日”短语的基本原理。让我知道如果这是明确的。 – mpilquist