fold
trait Collection[A] { def fold(z: A)(op: (A, A) => A): A }
fold は、最終的な結果が計算されるまで、二項演算子 op をこのコレクションの要素のペアに適用していきます。 零元である要素 z は何回も使われることがあります。
op
z