github.com/m4gshm/gollections@v0.0.10/op/delay/sum/api.go (about)

     1  // Package sum provides sum.Of alias
     2  package sum
     3  
     4  import (
     5  	"github.com/m4gshm/gollections/c"
     6  	"github.com/m4gshm/gollections/loop"
     7  	"github.com/m4gshm/gollections/slice/iter"
     8  	"github.com/m4gshm/gollections/slice/sum"
     9  )
    10  
    11  // Of returns a sum builder function
    12  func Of[T c.Summable](elements ...T) func() T {
    13  	return func() T { return sum.Of(elements) }
    14  }
    15  
    16  // Over returns a sum builder function
    17  func Over[T c.Summable](getters ...func() T) func() T {
    18  	return func() T { return loop.Sum(iter.Convert(getters, func(e func() T) T { return e() }).Next) }
    19  }