Some work

This commit is contained in:
2025-09-25 09:49:52 -05:00
parent dee65c4188
commit d3334d73f6
4 changed files with 306 additions and 19 deletions

View File

@@ -21,7 +21,9 @@ THE SOFTWARE.
*/
package helpers
import "cmp"
import (
"cmp"
)
const (
MaxUint = ^uint(0)
@@ -30,6 +32,18 @@ const (
MinInt = -MaxInt - 1
)
func MaxFor[O interface{}, E cmp.Ordered](g func(O) E, of ...O) O {
var m O
var mE E
for i := range of {
if g(of[i]) > mE {
m = of[i]
mE = g(of[i])
}
}
return m
}
func Max[E cmp.Ordered](of ...E) E {
var m E
if len(of) > 0 {
@@ -43,6 +57,18 @@ func Max[E cmp.Ordered](of ...E) E {
return m
}
func MinFor[O interface{}, E cmp.Ordered](g func(O) E, of ...O) O {
var m O
var mE E
for i := range of {
if g(of[i]) < mE {
m = of[i]
mE = g(of[i])
}
}
return m
}
func Min[E cmp.Ordered](of ...E) E {
var m E
if len(of) > 0 {