Scala: jak zrozumieć metodę próbowania flatMap?

Metoda sukcesu FlatMap jest realizowana w następujący sposób:

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

W pewnym sensie rozumiem, co robi ta metoda, pomaga nam uniknąć pisania kodu.

Ale w jakim sensie jest podobny do zwykłej mapy?

Regularna flatMap przyjmuje sekwencję sekwencji i umieszcza wszystkie elementy w jednej dużej „płaskiej” sekwencji.

Ale metoda FlatMap Try nie spłaszcza niczego.

Jak więc zrozumieć metodę próbowania flatMap?

questionAnswers(6)

yourAnswerToTheQuestion