Scala: fold vs foldLeft
Eu estou tentando entender como fold e foldLeft e o respectivo reduce and reduceLeft funcionam. Eu usei fold e foldLeft como meu exemplo
scala> val r = List((ArrayBuffer(1, 2, 3, 4),10))
scala> r.foldLeft(ArrayBuffer(1,2,4,5))((x,y) => x -- y._1)
scala> res28: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(5)
scala> r.fold(ArrayBuffer(1,2,4,5))((x,y) => x -- y._1)
<console>:11: error: value _1 is not a member of Serializable with Equals
r.fold(ArrayBuffer(1,2,4,5))((x,y) => x -- y._1)
Por quêfold
não funcionou comofoldLeft
? O que éSerializable with Equals
? Eu entendo fold e foldLeft tem uma pequena assinatura API diferente em termos de tipos genéricos de parâmetro. Por favor informar. Obrigado.