Coleções de Scala - Método de dobra

O método fold () é um membro do traço TraversableOnce, é usado para recolher elementos de coleções.

Sintaxe

A seguir está a sintaxe do método fold.

def fold[A1 >: A](z: A1)(op: (A1, A1) ? A1): A1

Aqui, o método fold leva a função do operador binário associativo como parâmetro. Este método retorna o resultado como valor. Ele considera a primeira entrada como valor inicial e a segunda entrada como uma função (que leva o valor acumulado e o item atual como entrada).

Uso

Abaixo está um exemplo de programa mostrando como usar o método de dobra -

Exemplo

object Demo {
   def main(args: Array[String]) = {
      val list = List(1, 2, 3 ,4)
      //apply operation to get sum of all elements of the list
      val result = list.fold(0)(_ + _)
      //print result
      println(result)      
   }
}

Aqui, passamos 0 como valor inicial para a função de dobra e, em seguida, todos os valores são adicionados. Salve o programa acima emDemo.scala. Os seguintes comandos são usados ​​para compilar e executar este programa.

Comando

\>scalac Demo.scala
\>scala Demo

Resultado

10