50

fold と foldLeft 、およびそれぞれの reduce と reduceLeft がどのように機能するかを理解しようとしています。例として fold と foldLeft を使用しました

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)

foldとして機能しなかったのはなぜfoldLeftですか? とはSerializable with Equals? パラメーターのジェネリック型に関して、fold と foldLeft の API シグネチャがわずかに異なることを理解しています。お知らせ下さい。ありがとう。

4

1 に答える 1