mirror of
https://github.com/IBM/fp-go.git
synced 2025-06-19 00:17:48 +02:00
initial checkin
Signed-off-by: Dr. Carsten Leue <carsten.leue@de.ibm.com>
This commit is contained in:
52
function/bind.go
Normal file
52
function/bind.go
Normal file
@ -0,0 +1,52 @@
|
||||
package function
|
||||
|
||||
func Bind1st[T1, T2, R any](f func(T1, T2) R, t1 T1) func(T2) R {
|
||||
return func(t2 T2) R {
|
||||
return f(t1, t2)
|
||||
}
|
||||
}
|
||||
func Bind2nd[T1, T2, R any](f func(T1, T2) R, t2 T2) func(T1) R {
|
||||
return func(t1 T1) R {
|
||||
return f(t1, t2)
|
||||
}
|
||||
}
|
||||
|
||||
func Bind1[T1, R any](f func(T1) R, t1 T1) func() R {
|
||||
return func() R {
|
||||
return f(t1)
|
||||
}
|
||||
}
|
||||
|
||||
func Bind2[T1, T2, R any](f func(T1, T2) R, t1 T1, t2 T2) func() R {
|
||||
return func() R {
|
||||
return f(t1, t2)
|
||||
}
|
||||
}
|
||||
|
||||
func Bind3[T1, T2, T3, R any](f func(T1, T2, T3) R, t1 T1, t2 T2, t3 T3) func() R {
|
||||
return func() R {
|
||||
return f(t1, t2, t3)
|
||||
}
|
||||
}
|
||||
|
||||
func SK[T1, T2 any](_ T1, t2 T2) T2 {
|
||||
return t2
|
||||
}
|
||||
|
||||
func Ignore1[T, R any](f func() R) func(T) R {
|
||||
return func(_ T) R {
|
||||
return f()
|
||||
}
|
||||
}
|
||||
|
||||
func Ignore1st[T1, T2, R any](f func(T2) R) func(T1, T2) R {
|
||||
return func(_ T1, t2 T2) R {
|
||||
return f(t2)
|
||||
}
|
||||
}
|
||||
|
||||
func Ignore2nd[T1, T2, R any](f func(T1) R) func(T1, T2) R {
|
||||
return func(t1 T1, _ T2) R {
|
||||
return f(t1)
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user