我有以下代碼中: 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數據幀)。 但是,每個函數的結果是互斥的,最後我想要將每個函數