title: Scala : fold vs foldLeft
body: <p>I am trying to understand how fold and foldLeft and the respective reduce and reduceLeft work. I used fold and foldLeft as my example</p>
  
  <pre><code>scala&gt; val r = List((ArrayBuffer(1, 2, 3, 4),10))
  scala&gt; r.foldLeft(ArrayBuffer(1,2,4,5))((x,y) =&gt; x -- y._1)
  
  scala&gt; res28: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(5)
  
  scala&gt; r.fold(ArrayBuffer(1,2,4,5))((x,y) =&gt; x -- y._1)
  &lt;console&gt;:11: error: value _1 is not a member of Serializable with Equals
                r.fold(ArrayBuffer(1,2,4,5))((x,y) =&gt; x -- y._1)
  </code></pre>
  
  <p>Why <code>fold</code> didn't work as <code>foldLeft</code>? What is <code>Serializable with Equals</code>? I understand fold and foldLeft has slight different API signature in terms of parameter generic types. Please advise. Thanks.</p>