Scala: как понять метод flatMap в Try?

Метод FlatMap для Success реализован так:

  def flatMap[U](f: T => Try[U]): Try[U] =
    try f(value)
    catch {
      case NonFatal(e) => Failure(e)
    }

Я вроде понимаю, что делает этот метод, это помогает нам избежать написания большого количества отлавливаемого кода.

Но в каком смысле это похоже на обычный flatMap?

Обычный flatMap берет последовательность последовательностей и помещает все элементы в одну большую «плоскую» последовательность.

Но метод TryM flatMap на самом деле ничего не выравнивает.

Итак, как понять метод flatMap в Try?

Ответы на вопрос(6)

Ваш ответ на вопрос