我有以下代码中: findPerson name peeps = List.foldl
(\a b -> case b of
Just _ -> b
Nothing -> if a.name == name then
Just a
else Nothing
) Nothing peeps
我想记录的foldl内的a和b值。
这是我的问题的一个简化版本,我想停止折返回的值,如果条件在折叠满足之后,其中a.size == 7 class test1 {
def test(a : List[Int]): Int = {
val list = a.foldLeft(if(a.size == 7) 1000 else 0)((b,a) => a + b)
list
}
}
我想学习函数式编程和Scala,所以我正在阅读Chiusano和Bjarnason的“Scala函数式编程”。在遇到列表时,我无法理解折叠方式和折叠方式。我在这里环顾四周,但我没有找到一些初学者友好的东西。因此,通过这本书提供的代码是: def foldRight[A,B](as: List[A], z: B)(f: (A, B) => B): B = as match {
case N
在scala中,我有一个返回值的函数列表。执行功能的顺序很重要,因为功能n的参数是功能n-1的输出。 这暗示使用foldLeft,像: val base: A
val funcs: Seq[Function[A, A]]
funcs.foldLeft(base)(x, f) => f(x)
(详细:类型A实际上是一个Spark数据帧)。 但是,每个函数的结果是互斥的,最后我想要将每个函数