>>173
.filter(|x| ...).map.(|x| …)とやったら
ざっくり言うと戻り値はIterator<Item=T>でowned, shared reference, mutable referenceの3種類
Map<Filter<...>>とかの詳細な型を知りたいと思うことは基本ないからそこまで困らない
デコレータとかコンポジション的なものとして理解しとけばいいと思う

関数に切り出すのはGC言語と比べると難しい
どの値の所有権をどの呼び出しレイヤーで保持すべきかを整理しながらリファクタリングする必要がある
ただある程度パターンがあるからそれが理解できるとそこまで難しくはない