Λ Takuya71 の日記 Λ

ここに記載の内容は個人的な見解で 勤務先、所属先には関連はございません。最近は scala に はまってます。認定スクラムマスター

入れ子になった型を入れ替える(Scalaz)

M[N[_] というようなデータ構造のデータがあって MとNを入れ替える場合 traverse(identity) を使うと簡単に出来る。

scala> Option(List(1,2,3)).traverse(identity)
res6: List[Option[Int]] = List(Some(1), Some(2), Some(3))

scala> List(1.some, 2.some, 3.some).traverse(identity)
res8: Option[List[Int]] = Some(List(1, 2, 3))