concatAll<T> function

T Function(List<T>) Function(T) concatAll<T>(
  1. BaseSemigroup<T> semigroup
)

Creates a function that concatenates a list of elements starting from a given element.

Example:

var semigroup = BaseSemigroup<int>();
var func = concatAll(semigroup)(0);
print(func([1, 2, 3, 4])); // Outputs: 10

Implementation

T Function(List<T>) Function(T) concatAll<T>(BaseSemigroup<T> semigroup) {
  return (T startWith) {
    return (List<T> as) {
      return as.fold(startWith, (acc, a) => semigroup.concat(acc, a));
    };
  };
}