Scalaでコードを書いていて、複数のリストをzipすることがあった。 val xs: List[Int] = ??? val ys: List[Int] = ??? val zs: List[String] = ??? xs.zip(ys).zip(zs) // => List[((Int, Int), String)] しかしzipは2つのリストからList[(A, B)]を作るので、複数回zipすると奇妙な型になってしまう。この場合はList[((Int, Int), String)]になってしまった。こういう型になるとmapなどで使うときに面倒だ。 lazyZip コレクションメソッド…