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?