go-range
Lib, that implements sets, intervals and sequences in Golang
How to get
$ go get github.com/apo-diod/go-range
Use
Set:
set := goRange.InitialiseSet(0, 10) // contains [0, 10)
set.Include(0, 30) // now contains [0, 30)
set.Exclude(10, 20) // now contains [0, 10)U[20, 30)
unpacked := set.UnpackSet()//contains [0, 10)U[20, 30)
Interval:
closedInterval := goRange.InitialiseClosedInterval(-10, 10)//[-10, 10]
openInterval := goRange.InitialiseOpenInterval(-10, 10)//(-10, 10)
sum := goRange.IntervalSum(closeInterval, openInterval) //[-20, 20]
unpacked := sum.UnpackInterval()//[]int{-20, -19, ..., 19, 20}
Sequence:
seq := goRange.InitialiseSequence(func(elements []int) int {
return elements[len(elements)-1] + elements[len(elements)-2]
}, 1, 1)//fibonacci sequence
log.Println(seq.GetElement(10)) //55
PS
This lib will be updated, so if you find a bug, please notify me