В
flat_map
? Глянул что делает у Option
/Result
/Iterator
и смысл уже понятен...Если у тебя в
map
функция возвращает U
, то в flat_map
функция возвращает условно Monad<U>
.map
возвращает pure(f(...))
, flat_map
просто f(...)
Вот например
and_then
(он-же flat_map
) растовского Option
:match self {
Some(x) => f(x),
None => None,
}
вроде всё очевидно....