public static T FoldR <T>(T start, IEnumerable <T> elements, FoldHandler <T> foldHandler) { T akt = start; foreach (T element in elements) { akt = foldHandler(akt, element); } return(akt); }
public static T FoldR <T>(T start, IEnumerable <T> elements, FoldHandler <T> foldHandler) => elements.Aggregate(start, (current, element) => foldHandler(current, element));