gpt4 book ai didi

scala - 与猫的三个列表的笛卡尔积

转载 作者:行者123 更新时间:2023-12-05 00:47:50 24 4
gpt4 key购买 nike

假设我需要压缩三个列表以获取三元组列表。我可以这样写:

import cats._
import cats.data._
import cats.implicits._

(List(1, 2) |@| List(3, 4) |@| List(5, 6)) map {case (a, b, c) => (a, b, c)}
res1: List[(Int, Int, Int)] = List((1,3,5), (1,3,6), (1,4,5), (1,4,6), (2,3,5), (2,3,6), (2,4,5), (2,4,6))

你能简化一下吗?

最佳答案

1.1.0 , 就是 (a, b, c).tupled .包含所有导入和依赖项的 Ammonite 脚本:

@ import $ivy.`org.typelevel::cats-core:1.1.0`
@ import cats._, cats.data._, cats.implicits._

val triples = (List(1, 2), List(3, 4), List(5, 6)).tupled
println(triples)

输出:
List((1,3,5), (1,3,6), (1,4,5), (1,4,6), (2,3,5), (2,3,6), (2,4,5), (2,4,6))

我不会称它为“zip”,但是,它更像是笛卡尔积。

关于scala - 与猫的三个列表的笛卡尔积,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50842366/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com