ReduceLeft

From Scala Wiki
Jump to navigation Jump to search

reduceLeft[edit]

The `reduceLeft` method is a higher-order function in Scala that is used to reduce the elements of a collection into a single value by applying a binary operation from left to right. It is a member of the Scala `TraversableOnce` trait.

Syntax[edit]

The syntax of the `reduceLeft` method is as follows:

``` def reduceLeft[B >: A](op: (B, A) => B): B ```

Parameters[edit]

  • `op`: A binary operator that takes two parameters, `acc` (the accumulator) and `elem` (the element being processed). It returns a value of type `B`.

Return Value[edit]

The `reduceLeft` method returns the final value obtained after applying the binary operator to all elements of the collection.

Example[edit]

Here is an example usage of the `reduceLeft` method:

``` val numbers = List(1, 2, 3, 4, 5) val sum = numbers.reduceLeft((acc, elem) => acc + elem) ```

In this example, the `reduceLeft` method is applied to a list of numbers, and the binary operator `+` is used to compute the sum of all the elements. The final result is stored in the `sum` variable.

Notes[edit]

  • The `reduceLeft` method throws a `UnsupportedOperationException` if the collection is empty.
  • It is recommended to use the `reduceOption` method instead of `reduceLeft` when dealing with potentially empty collections to avoid the exception mentioned above.
  • The `reduceLeft` method is commonly used in functional programming to perform operations such as summation, product calculation, finding maximum or minimum values, and more.

See Also[edit]

  • reduceRight: Similar to `reduceLeft`, but the binary operator is applied from right to left.
  • foldLeft: An extension of `reduceLeft` that also takes an initial value for the accumulator.
  • foldRight: An extension of `reduceRight` that also takes an initial value for the accumulator.
  • ListBuffer: A mutable implementation of a list that supports efficient additions and updates.
  • List: An immutable implementation of a list that is more suitable for functional programming.
  • Scala: The programming language in which `reduceLeft` is defined.