public Value[] Reduce(Func<Value[], Value[], Value[]> reduction, Value[] reducedValue) { for (int i = 0; i < Rows.Count; i++) { reducedValue = reduction(reducedValue, Rows[i]); } return reducedValue; }