val numbers = List(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) val res = numbers.foldLeft(0)((m, n) => m + n) print(res) // 55 numbers.foldLeft(0, {(m: Int, n: Int) => m + n}) numbers.foldLeft(0)(_ + _) val numbers = List(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) val numberFunc = numbers.foldLeft(List[Int]())_ val squares = numberFunc((xs, x) => xs:+ x*x) print(squares.toString()) // List(1, 4, 9, 16, 25, 36, 49, 64, 81, 100) val cubes = numberFunc((xs, x) => xs:+ x*x*x) print(cubes.toString()) // List(1, 8, 27, 64, 125, 216, 343, 512, 729, 1000) val numbers = List(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) numbers.foldLeft(0)((sum, item) => sum + item) // Generic Form numbers.foldRight(0)((sum, item) => sum + item) // Generic Form numbers.foldLeft(0)(_+_) // Curried Form numbers.foldRight(0)(_+_) // Curried Form (0 /: numbers)(_+_) // Used in place of foldLeft (numbers :\ 0)(_+_) // Used in place of foldRight