Scalaの関数型ライブラリCatsには便利な機能が色々と生えていますが、その中でもparTupledを利用すると複数のリストを各要素ごとのタプルのリストに変換できます。
Windymelt(めるくん)🚀❤️🔥さんと他1000人
@windymelt
はてなブログに投稿しました Scalaで複数のリストをzipするならlazyZipがおすすめ(きれいに収まる) - Lambdaカクテル blog.3qe.us/entry/2024/03/… #はてなブログ
2024-03-01 22:52:31import cats.implicits._
import cats.syntax.all._
val xs = List(1,2,3)
val ys = xs
val zs = xs
(xs, ys, zs).parMapN((x, y, z) => (x, y, z))
// => List((1,1,1), (2,2,2), (3,3,3))
Windymelt(めるくん)🚀❤️🔥さんと他1000人
@windymelt
(xs, ys, zs).parMapN((x, y, z) ⇒ (x, y, z))をもうちょっとシュッと書けたりしないかなあ。
2024-03-05 21:53:35import cats.implicits._
import cats.syntax.all._
val xs = List(1,2,3)
val ys = xs
val zs = xs
(xs, ys, zs).tupled
// => List((1,1,1), (1,1,2), (1,1,3), (1,2,1), (1,2,2), ...)
Windymelt(めるくん)🚀❤️🔥さんと他1000人
@windymelt
@Kory__3 試したけど想定とは違う形になっちゃった!!(デカルト咳的に全組み合わせになっちゃう)
2024-03-05 22:16:50import cats.implicits._
import cats.syntax.all._
val xs = List(1,2,3)
val ys = xs
val zs = xs
(xs, ys, zs).parTupled
// => List((1,1,1), (2,2,2), (3,3,3))