private static IValueReducer <Grade> FromDoubleReducer( IValueReducer <double> reducer ) { return(new ValueReducer.ComposedReducer <double, Grade>( reducer, grade => grade.value, value => new Grade(value) )); }
public ComposedReducer( IValueReducer <A> other, Func <B, A> wrap, Func <A, B> unwrap ) { this.other = other; this.wrap = wrap; this.unwrap = unwrap; }
public Grade FinalGrade(IValueReducer <Grade> method) { var hwGrade = method.Reduce(homeworks); return(0.3 * hwGrade + 0.7 * exam); }