はじめに この記事は ScalaMatsuri 2023 で発表されるセッション「traverseを制する者はコードを制す」の補完記事です。セッション時間の都合上カットした traverse の実装面を焦点に解説します。 traverse がどういったシーンで役に立つのか等は本セッションをご参照ください。 使用する言語・ライブラリのバージョンは以下の通りです。 Scala 3.2.2 cats 2.7.0 構造を保ったまま要素に関数を適用する さて traverse とはどんな関数なのかと言うと、構造を保ったまま要素に関数を適用する関数です。 そう聞くと最近のメジャーな言語にはおおよそ存在している map の事を思い浮かべる方も居る事でしょう。 その通り map も構造を保ったまま要素に関数を適用する関数と言えます。 val list = List(1, 2, 3, 4, 5) list.