gpt4 book ai didi

scala - 概括收集方法

转载 作者:行者123 更新时间:2023-12-01 04:12:42 25 4
gpt4 key购买 nike

如果我想将以下方法推广到支持所有必要操作( foldLeftflatMapmap:+ )的所有集合类型,那么我该怎么做?目前它只适用于列表。

代码:

def join[A](lists: List[List[A]]): List[List[A]] = {
lists.foldLeft(List(List[A]())) { case (acc, cur) =>
for {
a <- acc
c <- cur
} yield a :+ c
}
}

最佳答案

如果您只想要支持 :+ 的集合,最简单的方法就是根据 Seq 定义它而不是 List .

你可以让它更通用,一直到 Traversable ,通过使用构建器。当我手头有更多时间时,我很乐意解释这一点,但在那个级别上它往往会变得复杂。

Scalaz applicative functors 可能是要走的路,但我会让比我更有 Scalaz 经验的人来处理那个特定的答案。

关于scala - 概括收集方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5208427/

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