加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

斯卡拉 – 笛卡儿三种名单与猫的产品

发布时间:2020-12-16 18:10:06 所属栏目:安全 来源:网络整理
导读:假设我需要压缩三个列表来获取三元组列表.我可以这样写: import cats._import cats.data._import cats.implicits._(List(1,2) |@| List(3,4) |@| List(5,6)) map {case (a,b,c) = (a,c)}res1: List[(Int,Int,Int)] = List((1,3,5),(1,6),4,(2,6)) 你能简化
假设我需要压缩三个列表来获取三元组列表.我可以这样写:

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

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

你能简化一下吗?

解决方法

在1.1.0中,它只是(a,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,6))

我不会称之为“拉链”,但它更像是笛卡儿的产品.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读