Глядя на 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, чтобы получить доступ к выше класса с РЕПЛ, Я пробовал:
scala> val echo = Util.ReadLine.flatMap(Util.PrintLine)
echo: common.I01.IO[Unit] = [email protected]
Я ожидаю, что будет предложено для ввода текста (через readLine
), но я вижу, как я понимаю, просто анонимную функцию/класс.
Как я могу проверить вышеуказанный код?
спасибо. Когда вы говорите, что «конец Вселенной - это сеанс REPL», не могли бы вы рассказать подробнее? Я слышал термин вселенной перед тем, как сканировать книгу Хаскелла несколько лет назад. –
Я просто немного очистил терминологию и добавил логическое обоснование фразы «конец вселенной». Дайте мне знать, если это ясно. – mpilquist