I have learned the basic difference between foldLeft and reduceLeft
foldLeft
reduceLeft
foldLeft:
To really understand what are you doing with fold/reduce, check this: http://wiki.tcl.tk/17983 very good explanation. once you get the concept of fold, reduce will come together with the answer above: list.tail.foldLeft(list.head)(_)