fold

trait Collection[A] {
  def fold(z: A)(op: (A, A) => A): A
}

fold は、最終的な結果が計算されるまで、二項演算子 op をこのコレクションの要素のペアに適用していきます。 零元である要素 z は何回も使われることがあります。