title: difference between foldLeft and reduceLeft in Scala
body: <p>I have learned the basic difference between <code>foldLeft</code> and <code>reduceLeft</code></p>
  
  <p><strong>foldLeft:</strong></p>
  
  <ul>
  <li>initial value has to be passed</li>
  </ul>
  
  <p><strong>reduceLeft:</strong></p>
  
  <ul>
  <li>takes first element of the collection as initial value</li>
  <li>throws exception if collection is empty</li>
  </ul>
  
  <p>Is there any other difference ?</p>
  
  <p>Any specific reason to have two methods with similar functionality?</p>