IO
Формальное определение
Тип данных ввода-вывода.
Определение в виде кода на Scala
sealed trait IO[+A]:
private[effect] def apply(rw: World[RealWorld]): Trampoline[(World[RealWorld], A)]
Реализация
Реализация в ScalaZ
import scalaz.*
import Scalaz.*
import scalaz.effect.*
import scalaz.effect.IO.*
val action1 =
for
x <- readLn
_ <- putStrLn("Hello, " + x + "!")
yield ()
action1.unsafePerformIO()
Ссылки: