Bingung dengan pemahaman-for ke transformasi flatMap / Map

Saya benar-benar tidak memahami Map dan FlatMap. Yang gagal saya pahami adalah bagaimana pemahaman-for adalah urutan panggilan bersarang ke map dan flatMap. Contoh berikut adalah dari Pemrograman Fungsional di Scala def bothMatch(pat:String,pat2:String,s:String):Option[Boolean] = for { f <-...