gpt4 book ai didi

scala - Scala对 map 进行多分区-类型不匹配;找到(A,B)=>需要 bool 值(A,B)=> bool 值吗?

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

我正在尝试基于谓词列表对 map 进行多分区。

我编写了以下函数来做到这一点:

def multipartition[A,B](map : Map[A,B], list : List[(A,B) => Boolean]) : List[Map[A,B]] = 
list match {
case Nil =>
Nil
case l :: ls =>
val (a, b) = map partition l; // type mismatch; found (A,B) => Boolean, required: (A,B) => Boolean
return a :: multipartition(b, ls)
}

Scala编译器(我正在运行2.9.1)在指定的位置失败,出现“类型不匹配;找到(A,B)=> bool 值,必需:(A,B)=> bool 值”。

有没有人看过类似的东西?知道如何解决吗?

谢谢,

LP

最佳答案

分区需要Function[(A,B), Boolean],这是函数的一个一对对参数的功能,而不是两个参数的功能(颇为烦人的是它们是不同的)

因此,您需要编写((A,B)) => Boolean作为列表元素的类型

(错误消息根本没有帮助,接近一个小错误)

关于scala - Scala对 map 进行多分区-类型不匹配;找到(A,B)=>需要 bool 值(A,B)=> bool 值吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7469815/

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