короткое замыкание вложения нескольких кошек.эффект.ИО


есть ли лучший способ вложения нескольких ИО? readfromSources не следует искать soure2 при наличии данных в файле source1

 import cats.effect.IO
  def source1(key:String):IO[Option[String]] = ???
  def source2(key:String):IO[Option[String]] = ???
  def source3(key:String):IO[Option[String]] = ???
  def readfromSources(key:String):IO[Option[String]] =
    source1(key).flatMap{ d =>
      if (d.nonEmpty) IO(d)
      else source2(key).flatMap{d =>
        if (d.nonEmpty) IO(d)
        else source3(key)
       }
    }


104
1
задан 10 марта 2018 в 10:03 Источник Поделиться
Комментарии