私はScala construct map(f).flatten
was equivalent to flatMap(f)
と考えました。しかし、この例ではそうではありません。私はそれでケースクラスの役割が何であるのだろうか。整数を使用する場合、どちらも同等です。しかし、私の場合、私はできません。フラットマップフラットマップは同等ではありません
case class CTest(v: Int)
val s = Set(Map(CTest(0) -> List(0, 3), CTest(1) -> List(0, 2)))
val possibilities = s flatMap { m =>
val mapping = m flatMap {
case (label, destNodes) => destNodes map {
case nodes => (label, nodes) }
}
mapping
}
possibilities
は
case class CTest(v: Int)
val s = Set(Map(CTest(0) -> List(0, 3), CTest(1) -> List(0, 2)))
val possibilities = s flatMap { m =>
val mapping = m map {
case (label, destNodes) => destNodes map {
case nodes => (label, nodes) }
}
mapping.flatten
}
possibilities
利回り
Set((CTest(0),0), (CTest(0),3), (CTest(1),0), (CTest(1),2))
任意のアイデアなぜ一方
Set((CTest(0),3), (CTest(1), 2))
が得?