Documentation
¶
Overview ¶
Code generated by curry generator; DO NOT EDIT.
Code generated by curry generator; DO NOT EDIT.
Code generated by curry generator; DO NOT EDIT.
Code generated by curry generator; DO NOT EDIT.
Code generated by curry generator; DO NOT EDIT.
Code generated by curry generator; DO NOT EDIT.
Code generated by curry generator; DO NOT EDIT.
Code generated by curry generator; DO NOT EDIT.
Index ¶
- func Adapt1[T0 any, Fn FuncAny1[T0]](fn Fn) func(T0)
- func Adapt1F[T0 any, Fn FuncAny1[T0]](_ func(T0), fn Fn) func(T0)
- func Adapt1R[T0, R any, Fn FuncAny1AnyR[T0, R]](fn Fn) func(T0) R
- func Adapt1RF[T0, R any, Fn FuncAny1AnyR[T0, R]](_ func(T0) R, fn Fn) func(T0) R
- func Adapt2[T0, T1 any, Fn FuncAny2[T0, T1]](fn Fn) func(T0, T1)
- func Adapt2F[T0, T1 any, Fn FuncAny2[T0, T1]](_ func(T0, T1), fn Fn) func(T0, T1)
- func Adapt2R[T0, T1, R any, Fn FuncAny2AnyR[T0, T1, R]](fn Fn) func(T0, T1) R
- func Adapt2RF[T0, T1, R any, Fn FuncAny2AnyR[T0, T1, R]](_ func(T0, T1) R, fn Fn) func(T0, T1) R
- func AdaptR[R any, Fn FuncAnyR[R]](fn Fn) func() R
- func AdaptRF[R any, Fn FuncAnyR[R]](_ func() R, fn Fn) func() R
- func Bind1[T0 any](fn func(T0), arg0 T0) func()
- func Bind1R[T0, R any](fn func(T0) R, arg0 T0) func() R
- func Bind1R2[T0, R0, R1 any](fn func(T0) (R0, R1), arg0 T0) func() (R0, R1)
- func Bind1S[T0 any](fn func(...T0), arg0 ...T0) func()
- func Bind1SR[T0, R any](fn func(...T0) R, arg0 ...T0) func() R
- func Bind1SR2[T0, R0, R1 any](fn func(...T0) (R0, R1), arg0 ...T0) func() (R0, R1)
- func BindFirstOf2[T0, T1 any](fn func(T0, T1), arg0 T0) func(T1)
- func BindFirstOf2R[T0, T1, R any](fn func(T0, T1) R, arg0 T0) func(T1) R
- func BindFirstOf2R2[T0, T1, R0, R1 any](fn func(T0, T1) (R0, R1), arg0 T0) func(T1) (R0, R1)
- func BindFirstOf2S[T0, T1 any](fn func(T0, ...T1), arg0 T0) func(...T1)
- func BindFirstOf2SR[T0, T1, R any](fn func(T0, ...T1) R, arg0 T0) func(...T1) R
- func BindFirstOf2SR2[T0, T1, R0, R1 any](fn func(T0, ...T1) (R0, R1), arg0 T0) func(...T1) (R0, R1)
- func BindFirstOf3[T0, T1, T2 any](fn func(T0, T1, T2), arg0 T0) func(T1, T2)
- func BindFirstOf3R[T0, T1, T2, R any](fn func(T0, T1, T2) R, arg0 T0) func(T1, T2) R
- func BindFirstOf3R2[T0, T1, T2, R0, R1 any](fn func(T0, T1, T2) (R0, R1), arg0 T0) func(T1, T2) (R0, R1)
- func BindFirstOf3S[T0, T1, T2 any](fn func(T0, T1, ...T2), arg0 T0) func(T1, ...T2)
- func BindFirstOf3SR[T0, T1, T2, R any](fn func(T0, T1, ...T2) R, arg0 T0) func(T1, ...T2) R
- func BindFirstOf3SR2[T0, T1, T2, R0, R1 any](fn func(T0, T1, ...T2) (R0, R1), arg0 T0) func(T1, ...T2) (R0, R1)
- func BindFirstOf4[T0, T1, T2, T3 any](fn func(T0, T1, T2, T3), arg0 T0) func(T1, T2, T3)
- func BindFirstOf4R[T0, T1, T2, T3, R any](fn func(T0, T1, T2, T3) R, arg0 T0) func(T1, T2, T3) R
- func BindFirstOf4R2[T0, T1, T2, T3, R0, R1 any](fn func(T0, T1, T2, T3) (R0, R1), arg0 T0) func(T1, T2, T3) (R0, R1)
- func BindFirstOf4S[T0, T1, T2, T3 any](fn func(T0, T1, T2, ...T3), arg0 T0) func(T1, T2, ...T3)
- func BindFirstOf4SR[T0, T1, T2, T3, R any](fn func(T0, T1, T2, ...T3) R, arg0 T0) func(T1, T2, ...T3) R
- func BindFirstOf4SR2[T0, T1, T2, T3, R0, R1 any](fn func(T0, T1, T2, ...T3) (R0, R1), arg0 T0) func(T1, T2, ...T3) (R0, R1)
- func BindFirstOf5[T0, T1, T2, T3, T4 any](fn func(T0, T1, T2, T3, T4), arg0 T0) func(T1, T2, T3, T4)
- func BindFirstOf5R[T0, T1, T2, T3, T4, R any](fn func(T0, T1, T2, T3, T4) R, arg0 T0) func(T1, T2, T3, T4) R
- func BindFirstOf5R2[T0, T1, T2, T3, T4, R0, R1 any](fn func(T0, T1, T2, T3, T4) (R0, R1), arg0 T0) func(T1, T2, T3, T4) (R0, R1)
- func BindFirstOf5S[T0, T1, T2, T3, T4 any](fn func(T0, T1, T2, T3, ...T4), arg0 T0) func(T1, T2, T3, ...T4)
- func BindFirstOf5SR[T0, T1, T2, T3, T4, R any](fn func(T0, T1, T2, T3, ...T4) R, arg0 T0) func(T1, T2, T3, ...T4) R
- func BindFirstOf5SR2[T0, T1, T2, T3, T4, R0, R1 any](fn func(T0, T1, T2, T3, ...T4) (R0, R1), arg0 T0) func(T1, T2, T3, ...T4) (R0, R1)
- func BindLastOf2[T0, T1 any](fn func(T0, T1), arg1 T1) func(T0)
- func BindLastOf2R[T0, T1, R any](fn func(T0, T1) R, arg1 T1) func(T0) R
- func BindLastOf2R2[T0, T1, R0, R1 any](fn func(T0, T1) (R0, R1), arg1 T1) func(T0) (R0, R1)
- func BindLastOf2S[T0, T1 any](fn func(T0, ...T1), arg1 ...T1) func(T0)
- func BindLastOf2SR[T0, T1, R any](fn func(T0, ...T1) R, arg1 ...T1) func(T0) R
- func BindLastOf2SR2[T0, T1, R0, R1 any](fn func(T0, ...T1) (R0, R1), arg1 ...T1) func(T0) (R0, R1)
- func BindLastOf3[T0, T1, T2 any](fn func(T0, T1, T2), arg2 T2) func(T0, T1)
- func BindLastOf3R[T0, T1, T2, R any](fn func(T0, T1, T2) R, arg2 T2) func(T0, T1) R
- func BindLastOf3R2[T0, T1, T2, R0, R1 any](fn func(T0, T1, T2) (R0, R1), arg2 T2) func(T0, T1) (R0, R1)
- func BindLastOf3S[T0, T1, T2 any](fn func(T0, T1, ...T2), arg2 ...T2) func(T0, T1)
- func BindLastOf3SR[T0, T1, T2, R any](fn func(T0, T1, ...T2) R, arg2 ...T2) func(T0, T1) R
- func BindLastOf3SR2[T0, T1, T2, R0, R1 any](fn func(T0, T1, ...T2) (R0, R1), arg2 ...T2) func(T0, T1) (R0, R1)
- func BindLastOf4[T0, T1, T2, T3 any](fn func(T0, T1, T2, T3), arg3 T3) func(T0, T1, T2)
- func BindLastOf4R[T0, T1, T2, T3, R any](fn func(T0, T1, T2, T3) R, arg3 T3) func(T0, T1, T2) R
- func BindLastOf4R2[T0, T1, T2, T3, R0, R1 any](fn func(T0, T1, T2, T3) (R0, R1), arg3 T3) func(T0, T1, T2) (R0, R1)
- func BindLastOf4S[T0, T1, T2, T3 any](fn func(T0, T1, T2, ...T3), arg3 ...T3) func(T0, T1, T2)
- func BindLastOf4SR[T0, T1, T2, T3, R any](fn func(T0, T1, T2, ...T3) R, arg3 ...T3) func(T0, T1, T2) R
- func BindLastOf4SR2[T0, T1, T2, T3, R0, R1 any](fn func(T0, T1, T2, ...T3) (R0, R1), arg3 ...T3) func(T0, T1, T2) (R0, R1)
- func BindLastOf5[T0, T1, T2, T3, T4 any](fn func(T0, T1, T2, T3, T4), arg4 T4) func(T0, T1, T2, T3)
- func BindLastOf5R[T0, T1, T2, T3, T4, R any](fn func(T0, T1, T2, T3, T4) R, arg4 T4) func(T0, T1, T2, T3) R
- func BindLastOf5R2[T0, T1, T2, T3, T4, R0, R1 any](fn func(T0, T1, T2, T3, T4) (R0, R1), arg4 T4) func(T0, T1, T2, T3) (R0, R1)
- func BindLastOf5S[T0, T1, T2, T3, T4 any](fn func(T0, T1, T2, T3, ...T4), arg4 ...T4) func(T0, T1, T2, T3)
- func BindLastOf5SR[T0, T1, T2, T3, T4, R any](fn func(T0, T1, T2, T3, ...T4) R, arg4 ...T4) func(T0, T1, T2, T3) R
- func BindLastOf5SR2[T0, T1, T2, T3, T4, R0, R1 any](fn func(T0, T1, T2, T3, ...T4) (R0, R1), arg4 ...T4) func(T0, T1, T2, T3) (R0, R1)
- func DropFirstOf1[T0 any](_ T0)
- func DropFirstOf2[T0, T1 any](_ T0, arg1 T1) T1
- func DropFirstOf3[T0, T1, T2 any](_ T0, arg1 T1, arg2 T2) (T1, T2)
- func DropFirstOf4[T0, T1, T2, T3 any](_ T0, arg1 T1, arg2 T2, arg3 T3) (T1, T2, T3)
- func DropFirstOf5[T0, T1, T2, T3, T4 any](_ T0, arg1 T1, arg2 T2, arg3 T3, arg4 T4) (T1, T2, T3, T4)
- func DropLastOf2[T0, T1 any](arg0 T0, arg1 T1) T0
- func DropLastOf3[T0, T1, T2 any](arg0 T0, arg1 T1, arg2 T2) (T0, T1)
- func DropLastOf4[T0, T1, T2, T3 any](arg0 T0, arg1 T1, arg2 T2, arg3 T3) (T0, T1, T2)
- func DropLastOf5[T0, T1, T2, T3, T4 any](arg0 T0, arg1 T1, arg2 T2, arg3 T3, arg4 T4) (T0, T1, T2, T3)
- func Eq[Value comparable](a, b Value) bool
- func F2[T0, T1 any](fn func(T0, T1)) func(T0) func(T1)
- func F2R[T0, T1, R any](fn func(T0, T1) R) func(T0) func(T1) R
- func F2R2[T0, T1, R0, R1 any](fn func(T0, T1) (R0, R1)) func(T0) func(T1) (R0, R1)
- func F2S[T0, T1 any](fn func(T0, ...T1)) func(T0) func(...T1)
- func F2SR[T0, T1, R any](fn func(T0, ...T1) R) func(T0) func(...T1) R
- func F2SR2[T0, T1, R0, R1 any](fn func(T0, ...T1) (R0, R1)) func(T0) func(...T1) (R0, R1)
- func F3[T0, T1, T2 any](fn func(T0, T1, T2)) func(T0) func(T1) func(T2)
- func F3R[T0, T1, T2, R any](fn func(T0, T1, T2) R) func(T0) func(T1) func(T2) R
- func F3R2[T0, T1, T2, R0, R1 any](fn func(T0, T1, T2) (R0, R1)) func(T0) func(T1) func(T2) (R0, R1)
- func F3S[T0, T1, T2 any](fn func(T0, T1, ...T2)) func(T0) func(T1) func(...T2)
- func F3SR[T0, T1, T2, R any](fn func(T0, T1, ...T2) R) func(T0) func(T1) func(...T2) R
- func F3SR2[T0, T1, T2, R0, R1 any](fn func(T0, T1, ...T2) (R0, R1)) func(T0) func(T1) func(...T2) (R0, R1)
- func F4[T0, T1, T2, T3 any](fn func(T0, T1, T2, T3)) func(T0) func(T1) func(T2) func(T3)
- func F4R[T0, T1, T2, T3, R any](fn func(T0, T1, T2, T3) R) func(T0) func(T1) func(T2) func(T3) R
- func F4R2[T0, T1, T2, T3, R0, R1 any](fn func(T0, T1, T2, T3) (R0, R1)) func(T0) func(T1) func(T2) func(T3) (R0, R1)
- func F4S[T0, T1, T2, T3 any](fn func(T0, T1, T2, ...T3)) func(T0) func(T1) func(T2) func(...T3)
- func F4SR[T0, T1, T2, T3, R any](fn func(T0, T1, T2, ...T3) R) func(T0) func(T1) func(T2) func(...T3) R
- func F4SR2[T0, T1, T2, T3, R0, R1 any](fn func(T0, T1, T2, ...T3) (R0, R1)) func(T0) func(T1) func(T2) func(...T3) (R0, R1)
- func F5[T0, T1, T2, T3, T4 any](fn func(T0, T1, T2, T3, T4)) func(T0) func(T1) func(T2) func(T3) func(T4)
- func F5R[T0, T1, T2, T3, T4, R any](fn func(T0, T1, T2, T3, T4) R) func(T0) func(T1) func(T2) func(T3) func(T4) R
- func F5R2[T0, T1, T2, T3, T4, R0, R1 any](fn func(T0, T1, T2, T3, T4) (R0, R1)) func(T0) func(T1) func(T2) func(T3) func(T4) (R0, R1)
- func F5S[T0, T1, T2, T3, T4 any](fn func(T0, T1, T2, T3, ...T4)) func(T0) func(T1) func(T2) func(T3) func(...T4)
- func F5SR[T0, T1, T2, T3, T4, R any](fn func(T0, T1, T2, T3, ...T4) R) func(T0) func(T1) func(T2) func(T3) func(...T4) R
- func F5SR2[T0, T1, T2, T3, T4, R0, R1 any](fn func(T0, T1, T2, T3, ...T4) (R0, R1)) func(T0) func(T1) func(T2) func(T3) func(...T4) (R0, R1)
- func Head2[T0, T1 any](fn func(T0, T1)) func(T0) func(T1)
- func Head2R[T0, T1, R any](fn func(T0, T1) R) func(T0) func(T1) R
- func Head2R2[T0, T1, R0, R1 any](fn func(T0, T1) (R0, R1)) func(T0) func(T1) (R0, R1)
- func Head2S[T0, T1 any](fn func(T0, ...T1)) func(T0) func(...T1)
- func Head2SR[T0, T1, R any](fn func(T0, ...T1) R) func(T0) func(...T1) R
- func Head2SR2[T0, T1, R0, R1 any](fn func(T0, ...T1) (R0, R1)) func(T0) func(...T1) (R0, R1)
- func Head3[T0, T1, T2 any](fn func(T0, T1, T2)) func(T0) func(T1, T2)
- func Head3R[T0, T1, T2, R any](fn func(T0, T1, T2) R) func(T0) func(T1, T2) R
- func Head3R2[T0, T1, T2, R0, R1 any](fn func(T0, T1, T2) (R0, R1)) func(T0) func(T1, T2) (R0, R1)
- func Head3S[T0, T1, T2 any](fn func(T0, T1, ...T2)) func(T0) func(T1, ...T2)
- func Head3SR[T0, T1, T2, R any](fn func(T0, T1, ...T2) R) func(T0) func(T1, ...T2) R
- func Head3SR2[T0, T1, T2, R0, R1 any](fn func(T0, T1, ...T2) (R0, R1)) func(T0) func(T1, ...T2) (R0, R1)
- func Head4[T0, T1, T2, T3 any](fn func(T0, T1, T2, T3)) func(T0) func(T1, T2, T3)
- func Head4R[T0, T1, T2, T3, R any](fn func(T0, T1, T2, T3) R) func(T0) func(T1, T2, T3) R
- func Head4R2[T0, T1, T2, T3, R0, R1 any](fn func(T0, T1, T2, T3) (R0, R1)) func(T0) func(T1, T2, T3) (R0, R1)
- func Head4S[T0, T1, T2, T3 any](fn func(T0, T1, T2, ...T3)) func(T0) func(T1, T2, ...T3)
- func Head4SR[T0, T1, T2, T3, R any](fn func(T0, T1, T2, ...T3) R) func(T0) func(T1, T2, ...T3) R
- func Head4SR2[T0, T1, T2, T3, R0, R1 any](fn func(T0, T1, T2, ...T3) (R0, R1)) func(T0) func(T1, T2, ...T3) (R0, R1)
- func Head5[T0, T1, T2, T3, T4 any](fn func(T0, T1, T2, T3, T4)) func(T0) func(T1, T2, T3, T4)
- func Head5R[T0, T1, T2, T3, T4, R any](fn func(T0, T1, T2, T3, T4) R) func(T0) func(T1, T2, T3, T4) R
- func Head5R2[T0, T1, T2, T3, T4, R0, R1 any](fn func(T0, T1, T2, T3, T4) (R0, R1)) func(T0) func(T1, T2, T3, T4) (R0, R1)
- func Head5S[T0, T1, T2, T3, T4 any](fn func(T0, T1, T2, T3, ...T4)) func(T0) func(T1, T2, T3, ...T4)
- func Head5SR[T0, T1, T2, T3, T4, R any](fn func(T0, T1, T2, T3, ...T4) R) func(T0) func(T1, T2, T3, ...T4) R
- func Head5SR2[T0, T1, T2, T3, T4, R0, R1 any](fn func(T0, T1, T2, T3, ...T4) (R0, R1)) func(T0) func(T1, T2, T3, ...T4) (R0, R1)
- func Lazy1[T0 any](fn func(T0)) func(func() T0)
- func Lazy1R[T0, R any](fn func(T0) R) func(func() T0) R
- func Lazy1R2[T0, R0, R1 any](fn func(T0) (R0, R1)) func(func() T0) (R0, R1)
- func Lazy1S[T0 any](fn func(...T0)) func(func() []T0)
- func Lazy1SR[T0, R any](fn func(...T0) R) func(func() []T0) R
- func Lazy1SR2[T0, R0, R1 any](fn func(...T0) (R0, R1)) func(func() []T0) (R0, R1)
- func Lazy2[T0, T1 any](fn func(T0, T1)) func(func() T0, func() T1)
- func Lazy2R[T0, T1, R any](fn func(T0, T1) R) func(func() T0, func() T1) R
- func Lazy2R2[T0, T1, R0, R1 any](fn func(T0, T1) (R0, R1)) func(func() T0, func() T1) (R0, R1)
- func Lazy2S[T0, T1 any](fn func(T0, ...T1)) func(func() T0, func() []T1)
- func Lazy2SR[T0, T1, R any](fn func(T0, ...T1) R) func(func() T0, func() []T1) R
- func Lazy2SR2[T0, T1, R0, R1 any](fn func(T0, ...T1) (R0, R1)) func(func() T0, func() []T1) (R0, R1)
- func Lazy3[T0, T1, T2 any](fn func(T0, T1, T2)) func(func() T0, func() T1, func() T2)
- func Lazy3R[T0, T1, T2, R any](fn func(T0, T1, T2) R) func(func() T0, func() T1, func() T2) R
- func Lazy3R2[T0, T1, T2, R0, R1 any](fn func(T0, T1, T2) (R0, R1)) func(func() T0, func() T1, func() T2) (R0, R1)
- func Lazy3S[T0, T1, T2 any](fn func(T0, T1, ...T2)) func(func() T0, func() T1, func() []T2)
- func Lazy3SR[T0, T1, T2, R any](fn func(T0, T1, ...T2) R) func(func() T0, func() T1, func() []T2) R
- func Lazy3SR2[T0, T1, T2, R0, R1 any](fn func(T0, T1, ...T2) (R0, R1)) func(func() T0, func() T1, func() []T2) (R0, R1)
- func Lazy4[T0, T1, T2, T3 any](fn func(T0, T1, T2, T3)) func(func() T0, func() T1, func() T2, func() T3)
- func Lazy4R[T0, T1, T2, T3, R any](fn func(T0, T1, T2, T3) R) func(func() T0, func() T1, func() T2, func() T3) R
- func Lazy4R2[T0, T1, T2, T3, R0, R1 any](fn func(T0, T1, T2, T3) (R0, R1)) func(func() T0, func() T1, func() T2, func() T3) (R0, R1)
- func Lazy4S[T0, T1, T2, T3 any](fn func(T0, T1, T2, ...T3)) func(func() T0, func() T1, func() T2, func() []T3)
- func Lazy4SR[T0, T1, T2, T3, R any](fn func(T0, T1, T2, ...T3) R) func(func() T0, func() T1, func() T2, func() []T3) R
- func Lazy4SR2[T0, T1, T2, T3, R0, R1 any](fn func(T0, T1, T2, ...T3) (R0, R1)) func(func() T0, func() T1, func() T2, func() []T3) (R0, R1)
- func Lazy5[T0, T1, T2, T3, T4 any](fn func(T0, T1, T2, T3, T4)) func(func() T0, func() T1, func() T2, func() T3, func() T4)
- func Lazy5R[T0, T1, T2, T3, T4, R any](fn func(T0, T1, T2, T3, T4) R) func(func() T0, func() T1, func() T2, func() T3, func() T4) R
- func Lazy5R2[T0, T1, T2, T3, T4, R0, R1 any](fn func(T0, T1, T2, T3, T4) (R0, R1)) func(func() T0, func() T1, func() T2, func() T3, func() T4) (R0, R1)
- func Lazy5S[T0, T1, T2, T3, T4 any](fn func(T0, T1, T2, T3, ...T4)) func(func() T0, func() T1, func() T2, func() T3, func() []T4)
- func Lazy5SR[T0, T1, T2, T3, T4, R any](fn func(T0, T1, T2, T3, ...T4) R) func(func() T0, func() T1, func() T2, func() T3, func() []T4) R
- func Lazy5SR2[T0, T1, T2, T3, T4, R0, R1 any](fn func(T0, T1, T2, T3, ...T4) (R0, R1)) func(func() T0, func() T1, func() T2, func() T3, func() []T4) (R0, R1)
- func Not(b bool) bool
- func Return[T0 any](arg0 T0) T0
- func Return2[T0, T1 any](arg0 T0, arg1 T1) (T0, T1)
- func ReturnS[T0 any](arg0 ...T0) []T0
- func Reverse2[T0, T1 any](fn func(T0, T1)) func(T1, T0)
- func Reverse2R[T0, T1, R any](fn func(T0, T1) R) func(T1, T0) R
- func Reverse2R2[T0, T1, R0, R1 any](fn func(T0, T1) (R0, R1)) func(T1, T0) (R0, R1)
- func Reverse3[T0, T1, T2 any](fn func(T0, T1, T2)) func(T2, T1, T0)
- func Reverse3R[T0, T1, T2, R any](fn func(T0, T1, T2) R) func(T2, T1, T0) R
- func Reverse3R2[T0, T1, T2, R0, R1 any](fn func(T0, T1, T2) (R0, R1)) func(T2, T1, T0) (R0, R1)
- func Reverse4[T0, T1, T2, T3 any](fn func(T0, T1, T2, T3)) func(T3, T2, T1, T0)
- func Reverse4R[T0, T1, T2, T3, R any](fn func(T0, T1, T2, T3) R) func(T3, T2, T1, T0) R
- func Reverse4R2[T0, T1, T2, T3, R0, R1 any](fn func(T0, T1, T2, T3) (R0, R1)) func(T3, T2, T1, T0) (R0, R1)
- func Reverse5[T0, T1, T2, T3, T4 any](fn func(T0, T1, T2, T3, T4)) func(T4, T3, T2, T1, T0)
- func Reverse5R[T0, T1, T2, T3, T4, R any](fn func(T0, T1, T2, T3, T4) R) func(T4, T3, T2, T1, T0) R
- func Reverse5R2[T0, T1, T2, T3, T4, R0, R1 any](fn func(T0, T1, T2, T3, T4) (R0, R1)) func(T4, T3, T2, T1, T0) (R0, R1)
- func Thunk[T0 any](arg0 T0) func() T0
- func Thunk2[T0, T1 any](arg0 T0, arg1 T1) func() (T0, T1)
- func ThunkS[T0 any](arg0 ...T0) func() []T0
- func Un2[T0, T1 any](fn func(T0) func(T1)) func(T0, T1)
- func Un2R[T0, T1, R any](fn func(T0) func(T1) R) func(T0, T1) R
- func Un2R2[T0, T1, R0, R1 any](fn func(T0) func(T1) (R0, R1)) func(T0, T1) (R0, R1)
- func Un2S[T0, T1 any](fn func(T0) func(...T1)) func(T0, ...T1)
- func Un2SR[T0, T1, R any](fn func(T0) func(...T1) R) func(T0, ...T1) R
- func Un2SR2[T0, T1, R0, R1 any](fn func(T0) func(...T1) (R0, R1)) func(T0, ...T1) (R0, R1)
- func Un3[T0, T1, T2 any](fn func(T0) func(T1) func(T2)) func(T0, T1, T2)
- func Un3R[T0, T1, T2, R any](fn func(T0) func(T1) func(T2) R) func(T0, T1, T2) R
- func Un3R2[T0, T1, T2, R0, R1 any](fn func(T0) func(T1) func(T2) (R0, R1)) func(T0, T1, T2) (R0, R1)
- func Un3S[T0, T1, T2 any](fn func(T0) func(T1) func(...T2)) func(T0, T1, ...T2)
- func Un3SR[T0, T1, T2, R any](fn func(T0) func(T1) func(...T2) R) func(T0, T1, ...T2) R
- func Un3SR2[T0, T1, T2, R0, R1 any](fn func(T0) func(T1) func(...T2) (R0, R1)) func(T0, T1, ...T2) (R0, R1)
- func Un4[T0, T1, T2, T3 any](fn func(T0) func(T1) func(T2) func(T3)) func(T0, T1, T2, T3)
- func Un4R[T0, T1, T2, T3, R any](fn func(T0) func(T1) func(T2) func(T3) R) func(T0, T1, T2, T3) R
- func Un4R2[T0, T1, T2, T3, R0, R1 any](fn func(T0) func(T1) func(T2) func(T3) (R0, R1)) func(T0, T1, T2, T3) (R0, R1)
- func Un4S[T0, T1, T2, T3 any](fn func(T0) func(T1) func(T2) func(...T3)) func(T0, T1, T2, ...T3)
- func Un4SR[T0, T1, T2, T3, R any](fn func(T0) func(T1) func(T2) func(...T3) R) func(T0, T1, T2, ...T3) R
- func Un4SR2[T0, T1, T2, T3, R0, R1 any](fn func(T0) func(T1) func(T2) func(...T3) (R0, R1)) func(T0, T1, T2, ...T3) (R0, R1)
- func Un5[T0, T1, T2, T3, T4 any](fn func(T0) func(T1) func(T2) func(T3) func(T4)) func(T0, T1, T2, T3, T4)
- func Un5R[T0, T1, T2, T3, T4, R any](fn func(T0) func(T1) func(T2) func(T3) func(T4) R) func(T0, T1, T2, T3, T4) R
- func Un5R2[T0, T1, T2, T3, T4, R0, R1 any](fn func(T0) func(T1) func(T2) func(T3) func(T4) (R0, R1)) func(T0, T1, T2, T3, T4) (R0, R1)
- func Un5S[T0, T1, T2, T3, T4 any](fn func(T0) func(T1) func(T2) func(T3) func(...T4)) func(T0, T1, T2, T3, ...T4)
- func Un5SR[T0, T1, T2, T3, T4, R any](fn func(T0) func(T1) func(T2) func(T3) func(...T4) R) func(T0, T1, T2, T3, ...T4) R
- func Un5SR2[T0, T1, T2, T3, T4, R0, R1 any](fn func(T0) func(T1) func(T2) func(T3) func(...T4) (R0, R1)) func(T0, T1, T2, T3, ...T4) (R0, R1)
- func Wrap[RV, A, B any](start func(A) B, process ...func(B) RV) func(A) RV
- type FnSig0R
- type FnSig0R2
- type FnSig1
- type FnSig1R
- type FnSig1R2
- type FnSig2
- type FnSig2R
- type FnSig2R2
- type FnSig3
- type FnSig3R
- type FnSig3R2
- type FnSig4
- type FnSig4R
- type FnSig4R2
- type FnSig5
- type FnSig5R
- type FnSig5R2
- type Func
- type Func1
- type Func1AnyR
- type Func1R
- type Func2
- type Func2AnyR
- type Func2R
- type FuncAny1
- type FuncAny1AnyR
- type FuncAny2
- type FuncAny2AnyR
- type FuncAnyR
- type FuncR
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Adapt1 ¶ added in v0.0.3
Adapt1 upgrades the fn function signature to `func(T0)`.
T0 0 - 1 any 2
func Adapt1F ¶ added in v0.0.3
Adapt1F upgrades the fn function signature to the signature of the first argument.
func Adapt1R ¶ added in v0.0.3
func Adapt1R[T0, R any, Fn FuncAny1AnyR[T0, R]](fn Fn) func(T0) R
Adapt1R upgrades the fn function signature to `func(T0) R`.
T0, R 0 T0, - 1 T0, any 2 - , R 3 - , - 4 - , any 5 any, R 6 any, - 7 any, any 8
Example ¶
package main
import (
"fmt"
"slices"
"github.com/parametalol/curry"
)
func main() {
i := 0
odd := func() bool {
i++
return i&1 == 0
}
// slices.DeleteFunc expects func(int) bool. Let's adapt odd: the int
// argument will be ignored.
fmt.Println(
slices.DeleteFunc([]int{1, 2, 3, 4, 5},
curry.Adapt1R[int, bool](odd)))
}
Output: [1 3 5]
func Adapt1RF ¶ added in v0.0.3
func Adapt1RF[T0, R any, Fn FuncAny1AnyR[T0, R]](_ func(T0) R, fn Fn) func(T0) R
Adapt1RF upgrades the fn function signature to the signature of the first argument.
func Adapt2 ¶ added in v0.0.3
Adapt2 upgrades the fn function signature to `func(T0, T1)`.
T0, T1 0 T0, - 1 T0, any 2 - , T1 3 - , - 4 any, T1 5 any, - 6 any, any 7
func Adapt2F ¶ added in v0.0.3
Adapt2F deduces the target function signature types from the first argument.
func Adapt2R ¶ added in v0.0.3
func Adapt2R[T0, T1, R any, Fn FuncAny2AnyR[T0, T1, R]](fn Fn) func(T0, T1) R
Adapt2R upgrades the fn function signature to `func(T0, T1) R`.
T0, T1, R 0 T0, T1, - 1 T0, T1, any 2 T0, - , R 3 T0, - , - 4 T0, - , any 5 T0, any, R 6 T0, any, - 7 T0, any, any 8 - , T1, R 9 - , T1, - 10 - , T1, any 11 - , - , R 12 - , - , - 13 - , - , any 14 - , any, R 15 - , any, - 16 - , any, any 17 any, T1, R 18 any, T1, - 19 any, T1, any 20 any, - , R see 15 any, - , - see 16 any, - , any see 17 any, any, R 24 any, any, - 25 any, any, any 26
func Adapt2RF ¶ added in v0.0.3
func Adapt2RF[T0, T1, R any, Fn FuncAny2AnyR[T0, T1, R]](_ func(T0, T1) R, fn Fn) func(T0, T1) R
Adapt2RF deduces the target function signature types from the first argument.
func AdaptR ¶ added in v0.0.3
AdaptR upgrades the fn function signature to `func() R`.
R 0 - 1 any 2
func AdaptRF ¶ added in v0.0.3
AdaptRF upgrades the fn function signature to the signature of the first argument.
func Bind1 ¶ added in v0.0.2
func Bind1[T0 any](fn func(T0), arg0 T0) func()
Bind1 binds the first argument of a function of 1, returning no values.
func Bind1R ¶ added in v0.0.2
func Bind1R[T0, R any](fn func(T0) R, arg0 T0) func() R
Bind1R binds the first argument of a function of 1, returning one value.
func Bind1R2 ¶ added in v0.0.2
func Bind1R2[T0, R0, R1 any](fn func(T0) (R0, R1), arg0 T0) func() (R0, R1)
Bind1R2 binds the first argument of a function of 1, returning two values.
func Bind1S ¶ added in v0.0.2
func Bind1S[T0 any](fn func(...T0), arg0 ...T0) func()
Bind1S binds the first argument of a function of 1, returning no values.
func Bind1SR ¶ added in v0.0.2
func Bind1SR[T0, R any](fn func(...T0) R, arg0 ...T0) func() R
Bind1SR binds the first argument of a function of 1, returning one value.
func Bind1SR2 ¶ added in v0.0.2
func Bind1SR2[T0, R0, R1 any](fn func(...T0) (R0, R1), arg0 ...T0) func() (R0, R1)
Bind1SR2 binds the first argument of a function of 1, returning one value.
func BindFirstOf2 ¶ added in v0.0.2
func BindFirstOf2[T0, T1 any](fn func(T0, T1), arg0 T0) func(T1)
BindFirstOf2 binds the first argument of a function of 2, returning no values.
func BindFirstOf2R ¶ added in v0.0.2
func BindFirstOf2R[T0, T1, R any](fn func(T0, T1) R, arg0 T0) func(T1) R
BindFirstOf2R binds the first argument of a function of 2, returning one value.
Example ¶
package main
import (
"fmt"
"github.com/parametalol/curry"
)
func main() {
subtract := func(a, b int) int {
return a - b
}
subtractFromTen := curry.BindFirstOf2R(subtract, 10)
result := subtractFromTen(3)
fmt.Println(result)
}
Output: 7
func BindFirstOf2R2 ¶ added in v0.0.2
func BindFirstOf2R2[T0, T1, R0, R1 any](fn func(T0, T1) (R0, R1), arg0 T0) func(T1) (R0, R1)
BindFirstOf2R2 binds the first argument of a function of 2, returning two values.
func BindFirstOf2S ¶ added in v0.0.2
func BindFirstOf2S[T0, T1 any](fn func(T0, ...T1), arg0 T0) func(...T1)
BindFirstOf2S binds the first argument of a function of 2, returning no values.
func BindFirstOf2SR ¶ added in v0.0.2
func BindFirstOf2SR[T0, T1, R any](fn func(T0, ...T1) R, arg0 T0) func(...T1) R
BindFirstOf2SR binds the first argument of a function of 2, returning one value.
func BindFirstOf2SR2 ¶ added in v0.0.2
func BindFirstOf2SR2[T0, T1, R0, R1 any](fn func(T0, ...T1) (R0, R1), arg0 T0) func(...T1) (R0, R1)
BindFirstOf2SR2 binds the first argument of a function of 2, returning one value.
func BindFirstOf3 ¶ added in v0.0.2
func BindFirstOf3[T0, T1, T2 any](fn func(T0, T1, T2), arg0 T0) func(T1, T2)
BindFirstOf3 binds the first argument of a function of 3, returning no values.
func BindFirstOf3R ¶ added in v0.0.2
func BindFirstOf3R[T0, T1, T2, R any](fn func(T0, T1, T2) R, arg0 T0) func(T1, T2) R
BindFirstOf3R binds the first argument of a function of 3, returning one value.
func BindFirstOf3R2 ¶ added in v0.0.2
func BindFirstOf3R2[T0, T1, T2, R0, R1 any](fn func(T0, T1, T2) (R0, R1), arg0 T0) func(T1, T2) (R0, R1)
BindFirstOf3R2 binds the first argument of a function of 3, returning two values.
func BindFirstOf3S ¶ added in v0.0.2
func BindFirstOf3S[T0, T1, T2 any](fn func(T0, T1, ...T2), arg0 T0) func(T1, ...T2)
BindFirstOf3S binds the first argument of a function of 3, returning no values.
func BindFirstOf3SR ¶ added in v0.0.2
func BindFirstOf3SR[T0, T1, T2, R any](fn func(T0, T1, ...T2) R, arg0 T0) func(T1, ...T2) R
BindFirstOf3SR binds the first argument of a function of 3, returning one value.
func BindFirstOf3SR2 ¶ added in v0.0.2
func BindFirstOf3SR2[T0, T1, T2, R0, R1 any](fn func(T0, T1, ...T2) (R0, R1), arg0 T0) func(T1, ...T2) (R0, R1)
BindFirstOf3SR2 binds the first argument of a function of 3, returning one value.
func BindFirstOf4 ¶ added in v0.0.2
func BindFirstOf4[T0, T1, T2, T3 any](fn func(T0, T1, T2, T3), arg0 T0) func(T1, T2, T3)
BindFirstOf4 binds the first argument of a function of 4, returning no values.
func BindFirstOf4R ¶ added in v0.0.2
func BindFirstOf4R[T0, T1, T2, T3, R any](fn func(T0, T1, T2, T3) R, arg0 T0) func(T1, T2, T3) R
BindFirstOf4R binds the first argument of a function of 4, returning one value.
func BindFirstOf4R2 ¶ added in v0.0.2
func BindFirstOf4R2[T0, T1, T2, T3, R0, R1 any](fn func(T0, T1, T2, T3) (R0, R1), arg0 T0) func(T1, T2, T3) (R0, R1)
BindFirstOf4R2 binds the first argument of a function of 4, returning two values.
func BindFirstOf4S ¶ added in v0.0.2
func BindFirstOf4S[T0, T1, T2, T3 any](fn func(T0, T1, T2, ...T3), arg0 T0) func(T1, T2, ...T3)
BindFirstOf4S binds the first argument of a function of 4, returning no values.
func BindFirstOf4SR ¶ added in v0.0.2
func BindFirstOf4SR[T0, T1, T2, T3, R any](fn func(T0, T1, T2, ...T3) R, arg0 T0) func(T1, T2, ...T3) R
BindFirstOf4SR binds the first argument of a function of 4, returning one value.
func BindFirstOf4SR2 ¶ added in v0.0.2
func BindFirstOf4SR2[T0, T1, T2, T3, R0, R1 any](fn func(T0, T1, T2, ...T3) (R0, R1), arg0 T0) func(T1, T2, ...T3) (R0, R1)
BindFirstOf4SR2 binds the first argument of a function of 4, returning one value.
func BindFirstOf5 ¶ added in v0.0.2
func BindFirstOf5[T0, T1, T2, T3, T4 any](fn func(T0, T1, T2, T3, T4), arg0 T0) func(T1, T2, T3, T4)
BindFirstOf5 binds the first argument of a function of 5, returning no values.
func BindFirstOf5R ¶ added in v0.0.2
func BindFirstOf5R[T0, T1, T2, T3, T4, R any](fn func(T0, T1, T2, T3, T4) R, arg0 T0) func(T1, T2, T3, T4) R
BindFirstOf5R binds the first argument of a function of 5, returning one value.
func BindFirstOf5R2 ¶ added in v0.0.2
func BindFirstOf5R2[T0, T1, T2, T3, T4, R0, R1 any](fn func(T0, T1, T2, T3, T4) (R0, R1), arg0 T0) func(T1, T2, T3, T4) (R0, R1)
BindFirstOf5R2 binds the first argument of a function of 5, returning two values.
func BindFirstOf5S ¶ added in v0.0.2
func BindFirstOf5S[T0, T1, T2, T3, T4 any](fn func(T0, T1, T2, T3, ...T4), arg0 T0) func(T1, T2, T3, ...T4)
BindFirstOf5S binds the first argument of a function of 5, returning no values.
func BindFirstOf5SR ¶ added in v0.0.2
func BindFirstOf5SR[T0, T1, T2, T3, T4, R any](fn func(T0, T1, T2, T3, ...T4) R, arg0 T0) func(T1, T2, T3, ...T4) R
BindFirstOf5SR binds the first argument of a function of 5, returning one value.
func BindFirstOf5SR2 ¶ added in v0.0.2
func BindFirstOf5SR2[T0, T1, T2, T3, T4, R0, R1 any](fn func(T0, T1, T2, T3, ...T4) (R0, R1), arg0 T0) func(T1, T2, T3, ...T4) (R0, R1)
BindFirstOf5SR2 binds the first argument of a function of 5, returning one value.
func BindLastOf2 ¶ added in v0.0.2
func BindLastOf2[T0, T1 any](fn func(T0, T1), arg1 T1) func(T0)
BindLastOf2 binds the last argument of a function of 2, returning no values.
func BindLastOf2R ¶ added in v0.0.2
func BindLastOf2R[T0, T1, R any](fn func(T0, T1) R, arg1 T1) func(T0) R
BindLastOf2R binds the last argument of a function of 2, returning one value.
func BindLastOf2R2 ¶ added in v0.0.2
func BindLastOf2R2[T0, T1, R0, R1 any](fn func(T0, T1) (R0, R1), arg1 T1) func(T0) (R0, R1)
BindLastOf2R2 binds the last ellipsis argument of a function of 2, returning two values.
func BindLastOf2S ¶ added in v0.0.2
func BindLastOf2S[T0, T1 any](fn func(T0, ...T1), arg1 ...T1) func(T0)
BindLastOf2S binds the last ellipsis argument of a function of 2, returning no values.
func BindLastOf2SR ¶ added in v0.0.2
func BindLastOf2SR[T0, T1, R any](fn func(T0, ...T1) R, arg1 ...T1) func(T0) R
BindLastOf2SR binds the last ellipsis argument of a function of 2, returning one value.
func BindLastOf2SR2 ¶ added in v0.0.2
func BindLastOf2SR2[T0, T1, R0, R1 any](fn func(T0, ...T1) (R0, R1), arg1 ...T1) func(T0) (R0, R1)
BindLastOf2SR2 binds the last ellipsis argument of a function of 2, returning two values.
func BindLastOf3 ¶ added in v0.0.2
func BindLastOf3[T0, T1, T2 any](fn func(T0, T1, T2), arg2 T2) func(T0, T1)
BindLastOf3 binds the last argument of a function of 3, returning no values.
func BindLastOf3R ¶ added in v0.0.2
func BindLastOf3R[T0, T1, T2, R any](fn func(T0, T1, T2) R, arg2 T2) func(T0, T1) R
BindLastOf3R binds the last argument of a function of 3, returning one value.
func BindLastOf3R2 ¶ added in v0.0.2
func BindLastOf3R2[T0, T1, T2, R0, R1 any](fn func(T0, T1, T2) (R0, R1), arg2 T2) func(T0, T1) (R0, R1)
BindLastOf3R2 binds the last ellipsis argument of a function of 3, returning two values.
func BindLastOf3S ¶ added in v0.0.2
func BindLastOf3S[T0, T1, T2 any](fn func(T0, T1, ...T2), arg2 ...T2) func(T0, T1)
BindLastOf3S binds the last ellipsis argument of a function of 3, returning no values.
func BindLastOf3SR ¶ added in v0.0.2
func BindLastOf3SR[T0, T1, T2, R any](fn func(T0, T1, ...T2) R, arg2 ...T2) func(T0, T1) R
BindLastOf3SR binds the last ellipsis argument of a function of 3, returning one value.
func BindLastOf3SR2 ¶ added in v0.0.2
func BindLastOf3SR2[T0, T1, T2, R0, R1 any](fn func(T0, T1, ...T2) (R0, R1), arg2 ...T2) func(T0, T1) (R0, R1)
BindLastOf3SR2 binds the last ellipsis argument of a function of 3, returning two values.
func BindLastOf4 ¶ added in v0.0.2
func BindLastOf4[T0, T1, T2, T3 any](fn func(T0, T1, T2, T3), arg3 T3) func(T0, T1, T2)
BindLastOf4 binds the last argument of a function of 4, returning no values.
func BindLastOf4R ¶ added in v0.0.2
func BindLastOf4R[T0, T1, T2, T3, R any](fn func(T0, T1, T2, T3) R, arg3 T3) func(T0, T1, T2) R
BindLastOf4R binds the last argument of a function of 4, returning one value.
func BindLastOf4R2 ¶ added in v0.0.2
func BindLastOf4R2[T0, T1, T2, T3, R0, R1 any](fn func(T0, T1, T2, T3) (R0, R1), arg3 T3) func(T0, T1, T2) (R0, R1)
BindLastOf4R2 binds the last ellipsis argument of a function of 4, returning two values.
func BindLastOf4S ¶ added in v0.0.2
func BindLastOf4S[T0, T1, T2, T3 any](fn func(T0, T1, T2, ...T3), arg3 ...T3) func(T0, T1, T2)
BindLastOf4S binds the last ellipsis argument of a function of 4, returning no values.
func BindLastOf4SR ¶ added in v0.0.2
func BindLastOf4SR[T0, T1, T2, T3, R any](fn func(T0, T1, T2, ...T3) R, arg3 ...T3) func(T0, T1, T2) R
BindLastOf4SR binds the last ellipsis argument of a function of 4, returning one value.
func BindLastOf4SR2 ¶ added in v0.0.2
func BindLastOf4SR2[T0, T1, T2, T3, R0, R1 any](fn func(T0, T1, T2, ...T3) (R0, R1), arg3 ...T3) func(T0, T1, T2) (R0, R1)
BindLastOf4SR2 binds the last ellipsis argument of a function of 4, returning two values.
func BindLastOf5 ¶ added in v0.0.2
func BindLastOf5[T0, T1, T2, T3, T4 any](fn func(T0, T1, T2, T3, T4), arg4 T4) func(T0, T1, T2, T3)
BindLastOf5 binds the last argument of a function of 5, returning no values.
func BindLastOf5R ¶ added in v0.0.2
func BindLastOf5R[T0, T1, T2, T3, T4, R any](fn func(T0, T1, T2, T3, T4) R, arg4 T4) func(T0, T1, T2, T3) R
BindLastOf5R binds the last argument of a function of 5, returning one value.
func BindLastOf5R2 ¶ added in v0.0.2
func BindLastOf5R2[T0, T1, T2, T3, T4, R0, R1 any](fn func(T0, T1, T2, T3, T4) (R0, R1), arg4 T4) func(T0, T1, T2, T3) (R0, R1)
BindLastOf5R2 binds the last ellipsis argument of a function of 5, returning two values.
func BindLastOf5S ¶ added in v0.0.2
func BindLastOf5S[T0, T1, T2, T3, T4 any](fn func(T0, T1, T2, T3, ...T4), arg4 ...T4) func(T0, T1, T2, T3)
BindLastOf5S binds the last ellipsis argument of a function of 5, returning no values.
func BindLastOf5SR ¶ added in v0.0.2
func BindLastOf5SR[T0, T1, T2, T3, T4, R any](fn func(T0, T1, T2, T3, ...T4) R, arg4 ...T4) func(T0, T1, T2, T3) R
BindLastOf5SR binds the last ellipsis argument of a function of 5, returning one value.
func BindLastOf5SR2 ¶ added in v0.0.2
func BindLastOf5SR2[T0, T1, T2, T3, T4, R0, R1 any](fn func(T0, T1, T2, T3, ...T4) (R0, R1), arg4 ...T4) func(T0, T1, T2, T3) (R0, R1)
BindLastOf5SR2 binds the last ellipsis argument of a function of 5, returning two values.
func DropFirstOf1 ¶ added in v0.0.2
func DropFirstOf1[T0 any](_ T0)
DropFirstOf1 drops the first value from a tuple of 1.
func DropFirstOf2 ¶ added in v0.0.2
func DropFirstOf2[T0, T1 any](_ T0, arg1 T1) T1
DropFirstOf2 drops the first value from a tuple of 2.
func DropFirstOf3 ¶ added in v0.0.2
func DropFirstOf3[T0, T1, T2 any](_ T0, arg1 T1, arg2 T2) (T1, T2)
DropFirstOf3 drops the first value from a tuple of 3.
func DropFirstOf4 ¶ added in v0.0.2
func DropFirstOf4[T0, T1, T2, T3 any](_ T0, arg1 T1, arg2 T2, arg3 T3) (T1, T2, T3)
DropFirstOf4 drops the first value from a tuple of 4.
func DropFirstOf5 ¶ added in v0.0.2
func DropFirstOf5[T0, T1, T2, T3, T4 any](_ T0, arg1 T1, arg2 T2, arg3 T3, arg4 T4) (T1, T2, T3, T4)
DropFirstOf5 drops the first value from a tuple of 5.
func DropLastOf2 ¶ added in v0.0.2
func DropLastOf2[T0, T1 any](arg0 T0, arg1 T1) T0
DropLastOf2 drops the last value from a tuple of 2.
Example ¶
package main
import (
"fmt"
"github.com/parametalol/curry"
)
func main() {
f := func() (int, error) {
return 1, nil
}
result := curry.DropLastOf2(f())
fmt.Println(result)
}
Output: 1
func DropLastOf3 ¶ added in v0.0.2
func DropLastOf3[T0, T1, T2 any](arg0 T0, arg1 T1, arg2 T2) (T0, T1)
DropLastOf3 drops the last value from a tuple of 3.
func DropLastOf4 ¶ added in v0.0.2
func DropLastOf4[T0, T1, T2, T3 any](arg0 T0, arg1 T1, arg2 T2, arg3 T3) (T0, T1, T2)
DropLastOf4 drops the last value from a tuple of 4.
func DropLastOf5 ¶ added in v0.0.2
func DropLastOf5[T0, T1, T2, T3, T4 any](arg0 T0, arg1 T1, arg2 T2, arg3 T3, arg4 T4) (T0, T1, T2, T3)
DropLastOf5 drops the last value from a tuple of 5.
func Eq ¶ added in v0.0.2
func Eq[Value comparable](a, b Value) bool
func F2 ¶ added in v0.0.2
func F2[T0, T1 any](fn func(T0, T1)) func(T0) func(T1)
F2 curries a function of 2 parameter(s), returning no values.
func F2R ¶ added in v0.0.2
func F2R[T0, T1, R any](fn func(T0, T1) R) func(T0) func(T1) R
F2R curries a function of 2 parameter(s), returning one value.
Example ¶
package main
import (
"fmt"
"github.com/parametalol/curry"
)
func main() {
multiply := func(a, b int) int {
return a * b
}
curriedMultiply := curry.F2R(multiply)
multiplyByTwo := curriedMultiply(2)
result := multiplyByTwo(5)
fmt.Println(result)
}
Output: 10
func F2R2 ¶ added in v0.0.2
func F2R2[T0, T1, R0, R1 any](fn func(T0, T1) (R0, R1)) func(T0) func(T1) (R0, R1)
F2R2 curries a function of 2 parameter(s), returning two values.
func F2S ¶ added in v0.0.2
func F2S[T0, T1 any](fn func(T0, ...T1)) func(T0) func(...T1)
F2S curries a function of 2 parameter(s), returning no values.
func F2SR ¶ added in v0.0.2
func F2SR[T0, T1, R any](fn func(T0, ...T1) R) func(T0) func(...T1) R
F2SR curries a function of 2 parameter(s), returning one value.
func F2SR2 ¶ added in v0.0.2
func F2SR2[T0, T1, R0, R1 any](fn func(T0, ...T1) (R0, R1)) func(T0) func(...T1) (R0, R1)
F2SR2 curries a function of 2 parameter(s), returning two values.
func F3 ¶ added in v0.0.2
func F3[T0, T1, T2 any](fn func(T0, T1, T2)) func(T0) func(T1) func(T2)
F3 curries a function of 3 parameter(s), returning no values.
func F3R ¶ added in v0.0.2
func F3R[T0, T1, T2, R any](fn func(T0, T1, T2) R) func(T0) func(T1) func(T2) R
F3R curries a function of 3 parameter(s), returning one value.
func F3R2 ¶ added in v0.0.2
func F3R2[T0, T1, T2, R0, R1 any](fn func(T0, T1, T2) (R0, R1)) func(T0) func(T1) func(T2) (R0, R1)
F3R2 curries a function of 3 parameter(s), returning two values.
func F3S ¶ added in v0.0.2
func F3S[T0, T1, T2 any](fn func(T0, T1, ...T2)) func(T0) func(T1) func(...T2)
F3S curries a function of 3 parameter(s), returning no values.
func F3SR ¶ added in v0.0.2
func F3SR[T0, T1, T2, R any](fn func(T0, T1, ...T2) R) func(T0) func(T1) func(...T2) R
F3SR curries a function of 3 parameter(s), returning one value.
func F3SR2 ¶ added in v0.0.2
func F3SR2[T0, T1, T2, R0, R1 any](fn func(T0, T1, ...T2) (R0, R1)) func(T0) func(T1) func(...T2) (R0, R1)
F3SR2 curries a function of 3 parameter(s), returning two values.
func F4 ¶ added in v0.0.2
func F4[T0, T1, T2, T3 any](fn func(T0, T1, T2, T3)) func(T0) func(T1) func(T2) func(T3)
F4 curries a function of 4 parameter(s), returning no values.
func F4R ¶ added in v0.0.2
func F4R[T0, T1, T2, T3, R any](fn func(T0, T1, T2, T3) R) func(T0) func(T1) func(T2) func(T3) R
F4R curries a function of 4 parameter(s), returning one value.
func F4R2 ¶ added in v0.0.2
func F4R2[T0, T1, T2, T3, R0, R1 any](fn func(T0, T1, T2, T3) (R0, R1)) func(T0) func(T1) func(T2) func(T3) (R0, R1)
F4R2 curries a function of 4 parameter(s), returning two values.
func F4S ¶ added in v0.0.2
func F4S[T0, T1, T2, T3 any](fn func(T0, T1, T2, ...T3)) func(T0) func(T1) func(T2) func(...T3)
F4S curries a function of 4 parameter(s), returning no values.
func F4SR ¶ added in v0.0.2
func F4SR[T0, T1, T2, T3, R any](fn func(T0, T1, T2, ...T3) R) func(T0) func(T1) func(T2) func(...T3) R
F4SR curries a function of 4 parameter(s), returning one value.
func F4SR2 ¶ added in v0.0.2
func F4SR2[T0, T1, T2, T3, R0, R1 any](fn func(T0, T1, T2, ...T3) (R0, R1)) func(T0) func(T1) func(T2) func(...T3) (R0, R1)
F4SR2 curries a function of 4 parameter(s), returning two values.
func F5 ¶ added in v0.0.2
func F5[T0, T1, T2, T3, T4 any](fn func(T0, T1, T2, T3, T4)) func(T0) func(T1) func(T2) func(T3) func(T4)
F5 curries a function of 5 parameter(s), returning no values.
func F5R ¶ added in v0.0.2
func F5R[T0, T1, T2, T3, T4, R any](fn func(T0, T1, T2, T3, T4) R) func(T0) func(T1) func(T2) func(T3) func(T4) R
F5R curries a function of 5 parameter(s), returning one value.
func F5R2 ¶ added in v0.0.2
func F5R2[T0, T1, T2, T3, T4, R0, R1 any](fn func(T0, T1, T2, T3, T4) (R0, R1)) func(T0) func(T1) func(T2) func(T3) func(T4) (R0, R1)
F5R2 curries a function of 5 parameter(s), returning two values.
func F5S ¶ added in v0.0.2
func F5S[T0, T1, T2, T3, T4 any](fn func(T0, T1, T2, T3, ...T4)) func(T0) func(T1) func(T2) func(T3) func(...T4)
F5S curries a function of 5 parameter(s), returning no values.
func F5SR ¶ added in v0.0.2
func F5SR[T0, T1, T2, T3, T4, R any](fn func(T0, T1, T2, T3, ...T4) R) func(T0) func(T1) func(T2) func(T3) func(...T4) R
F5SR curries a function of 5 parameter(s), returning one value.
func F5SR2 ¶ added in v0.0.2
func F5SR2[T0, T1, T2, T3, T4, R0, R1 any](fn func(T0, T1, T2, T3, ...T4) (R0, R1)) func(T0) func(T1) func(T2) func(T3) func(...T4) (R0, R1)
F5SR2 curries a function of 5 parameter(s), returning two values.
func Head2 ¶ added in v0.0.2
func Head2[T0, T1 any](fn func(T0, T1)) func(T0) func(T1)
Head2 returns a partially curried function of 2 parameter(s), returning no values.
func Head2R ¶ added in v0.0.2
func Head2R[T0, T1, R any](fn func(T0, T1) R) func(T0) func(T1) R
Head2R returns a partially curried function of 2 parameter(s), returning one value.
func Head2R2 ¶ added in v0.0.2
func Head2R2[T0, T1, R0, R1 any](fn func(T0, T1) (R0, R1)) func(T0) func(T1) (R0, R1)
Head2R2 returns a partially curried function of 2 parameter(s), returning one value.
func Head2S ¶ added in v0.0.2
func Head2S[T0, T1 any](fn func(T0, ...T1)) func(T0) func(...T1)
Head2S returns a partially curried function of 2 parameter(s), returning no values.
func Head2SR ¶ added in v0.0.2
func Head2SR[T0, T1, R any](fn func(T0, ...T1) R) func(T0) func(...T1) R
Head2SR returns a partially curried function of 2 parameter(s), returning one value.
func Head2SR2 ¶ added in v0.0.2
func Head2SR2[T0, T1, R0, R1 any](fn func(T0, ...T1) (R0, R1)) func(T0) func(...T1) (R0, R1)
Head2SR2 returns a partially curried function of 2 parameter(s), returning two values.
func Head3 ¶ added in v0.0.2
func Head3[T0, T1, T2 any](fn func(T0, T1, T2)) func(T0) func(T1, T2)
Head3 returns a partially curried function of 3 parameter(s), returning no values.
func Head3R ¶ added in v0.0.2
func Head3R[T0, T1, T2, R any](fn func(T0, T1, T2) R) func(T0) func(T1, T2) R
Head3R returns a partially curried function of 3 parameter(s), returning one value.
func Head3R2 ¶ added in v0.0.2
func Head3R2[T0, T1, T2, R0, R1 any](fn func(T0, T1, T2) (R0, R1)) func(T0) func(T1, T2) (R0, R1)
Head3R2 returns a partially curried function of 3 parameter(s), returning one value.
func Head3S ¶ added in v0.0.2
func Head3S[T0, T1, T2 any](fn func(T0, T1, ...T2)) func(T0) func(T1, ...T2)
Head3S returns a partially curried function of 3 parameter(s), returning no values.
func Head3SR ¶ added in v0.0.2
func Head3SR[T0, T1, T2, R any](fn func(T0, T1, ...T2) R) func(T0) func(T1, ...T2) R
Head3SR returns a partially curried function of 3 parameter(s), returning one value.
func Head3SR2 ¶ added in v0.0.2
func Head3SR2[T0, T1, T2, R0, R1 any](fn func(T0, T1, ...T2) (R0, R1)) func(T0) func(T1, ...T2) (R0, R1)
Head3SR2 returns a partially curried function of 3 parameter(s), returning two values.
func Head4 ¶ added in v0.0.2
func Head4[T0, T1, T2, T3 any](fn func(T0, T1, T2, T3)) func(T0) func(T1, T2, T3)
Head4 returns a partially curried function of 4 parameter(s), returning no values.
func Head4R ¶ added in v0.0.2
func Head4R[T0, T1, T2, T3, R any](fn func(T0, T1, T2, T3) R) func(T0) func(T1, T2, T3) R
Head4R returns a partially curried function of 4 parameter(s), returning one value.
func Head4R2 ¶ added in v0.0.2
func Head4R2[T0, T1, T2, T3, R0, R1 any](fn func(T0, T1, T2, T3) (R0, R1)) func(T0) func(T1, T2, T3) (R0, R1)
Head4R2 returns a partially curried function of 4 parameter(s), returning one value.
func Head4S ¶ added in v0.0.2
func Head4S[T0, T1, T2, T3 any](fn func(T0, T1, T2, ...T3)) func(T0) func(T1, T2, ...T3)
Head4S returns a partially curried function of 4 parameter(s), returning no values.
func Head4SR ¶ added in v0.0.2
func Head4SR[T0, T1, T2, T3, R any](fn func(T0, T1, T2, ...T3) R) func(T0) func(T1, T2, ...T3) R
Head4SR returns a partially curried function of 4 parameter(s), returning one value.
func Head4SR2 ¶ added in v0.0.2
func Head4SR2[T0, T1, T2, T3, R0, R1 any](fn func(T0, T1, T2, ...T3) (R0, R1)) func(T0) func(T1, T2, ...T3) (R0, R1)
Head4SR2 returns a partially curried function of 4 parameter(s), returning two values.
func Head5 ¶ added in v0.0.2
func Head5[T0, T1, T2, T3, T4 any](fn func(T0, T1, T2, T3, T4)) func(T0) func(T1, T2, T3, T4)
Head5 returns a partially curried function of 5 parameter(s), returning no values.
func Head5R ¶ added in v0.0.2
func Head5R[T0, T1, T2, T3, T4, R any](fn func(T0, T1, T2, T3, T4) R) func(T0) func(T1, T2, T3, T4) R
Head5R returns a partially curried function of 5 parameter(s), returning one value.
func Head5R2 ¶ added in v0.0.2
func Head5R2[T0, T1, T2, T3, T4, R0, R1 any](fn func(T0, T1, T2, T3, T4) (R0, R1)) func(T0) func(T1, T2, T3, T4) (R0, R1)
Head5R2 returns a partially curried function of 5 parameter(s), returning one value.
func Head5S ¶ added in v0.0.2
func Head5S[T0, T1, T2, T3, T4 any](fn func(T0, T1, T2, T3, ...T4)) func(T0) func(T1, T2, T3, ...T4)
Head5S returns a partially curried function of 5 parameter(s), returning no values.
func Head5SR ¶ added in v0.0.2
func Head5SR[T0, T1, T2, T3, T4, R any](fn func(T0, T1, T2, T3, ...T4) R) func(T0) func(T1, T2, T3, ...T4) R
Head5SR returns a partially curried function of 5 parameter(s), returning one value.
func Head5SR2 ¶ added in v0.0.2
func Head5SR2[T0, T1, T2, T3, T4, R0, R1 any](fn func(T0, T1, T2, T3, ...T4) (R0, R1)) func(T0) func(T1, T2, T3, ...T4) (R0, R1)
Head5SR2 returns a partially curried function of 5 parameter(s), returning two values.
func Lazy1 ¶ added in v0.0.2
func Lazy1[T0 any](fn func(T0)) func(func() T0)
Lazy1 converts function parameters to thunk functions.
Example ¶
package main
import (
"fmt"
"github.com/parametalol/curry"
)
func main() {
process := func(expensive string) {
fmt.Println("That was", expensive)
}
expensive := func() string {
fmt.Println("Computing...")
return "expensive "
}
// The expensive process argument is not computed right now, but only when
// defer executes.
defer curry.Lazy1(process)(expensive)
fmt.Println("The expensive process argument hasn't been computed yet.")
}
Output: The expensive process argument hasn't been computed yet. Computing... That was expensive
func Lazy1R ¶ added in v0.0.2
func Lazy1R[T0, R any](fn func(T0) R) func(func() T0) R
Lazy1R converts function parameters to thunk functions.
func Lazy1R2 ¶ added in v0.0.2
func Lazy1R2[T0, R0, R1 any](fn func(T0) (R0, R1)) func(func() T0) (R0, R1)
Lazy1R2 converts function parameters to thunk functions.
func Lazy1S ¶ added in v0.0.2
func Lazy1S[T0 any](fn func(...T0)) func(func() []T0)
Lazy1S converts function parameters to thunk functions.
func Lazy1SR ¶ added in v0.0.2
func Lazy1SR[T0, R any](fn func(...T0) R) func(func() []T0) R
Lazy1SR converts function parameters to thunk functions.
func Lazy1SR2 ¶ added in v0.0.2
func Lazy1SR2[T0, R0, R1 any](fn func(...T0) (R0, R1)) func(func() []T0) (R0, R1)
Lazy1SR2 converts function parameters to thunk functions.
func Lazy2 ¶ added in v0.0.2
func Lazy2[T0, T1 any](fn func(T0, T1)) func(func() T0, func() T1)
Lazy2 converts function parameters to thunk functions.
func Lazy2R ¶ added in v0.0.2
func Lazy2R[T0, T1, R any](fn func(T0, T1) R) func(func() T0, func() T1) R
Lazy2R converts function parameters to thunk functions.
func Lazy2R2 ¶ added in v0.0.2
func Lazy2R2[T0, T1, R0, R1 any](fn func(T0, T1) (R0, R1)) func(func() T0, func() T1) (R0, R1)
Lazy2R2 converts function parameters to thunk functions.
func Lazy2S ¶ added in v0.0.2
func Lazy2S[T0, T1 any](fn func(T0, ...T1)) func(func() T0, func() []T1)
Lazy2S converts function parameters to thunk functions.
func Lazy2SR ¶ added in v0.0.2
func Lazy2SR[T0, T1, R any](fn func(T0, ...T1) R) func(func() T0, func() []T1) R
Lazy2SR converts function parameters to thunk functions.
func Lazy2SR2 ¶ added in v0.0.2
func Lazy2SR2[T0, T1, R0, R1 any](fn func(T0, ...T1) (R0, R1)) func(func() T0, func() []T1) (R0, R1)
Lazy2SR2 converts function parameters to thunk functions.
func Lazy3 ¶ added in v0.0.2
func Lazy3[T0, T1, T2 any](fn func(T0, T1, T2)) func(func() T0, func() T1, func() T2)
Lazy3 converts function parameters to thunk functions.
func Lazy3R ¶ added in v0.0.2
func Lazy3R[T0, T1, T2, R any](fn func(T0, T1, T2) R) func(func() T0, func() T1, func() T2) R
Lazy3R converts function parameters to thunk functions.
func Lazy3R2 ¶ added in v0.0.2
func Lazy3R2[T0, T1, T2, R0, R1 any](fn func(T0, T1, T2) (R0, R1)) func(func() T0, func() T1, func() T2) (R0, R1)
Lazy3R2 converts function parameters to thunk functions.
func Lazy3S ¶ added in v0.0.2
func Lazy3S[T0, T1, T2 any](fn func(T0, T1, ...T2)) func(func() T0, func() T1, func() []T2)
Lazy3S converts function parameters to thunk functions.
func Lazy3SR ¶ added in v0.0.2
func Lazy3SR[T0, T1, T2, R any](fn func(T0, T1, ...T2) R) func(func() T0, func() T1, func() []T2) R
Lazy3SR converts function parameters to thunk functions.
func Lazy3SR2 ¶ added in v0.0.2
func Lazy3SR2[T0, T1, T2, R0, R1 any](fn func(T0, T1, ...T2) (R0, R1)) func(func() T0, func() T1, func() []T2) (R0, R1)
Lazy3SR2 converts function parameters to thunk functions.
func Lazy4 ¶ added in v0.0.2
func Lazy4[T0, T1, T2, T3 any](fn func(T0, T1, T2, T3)) func(func() T0, func() T1, func() T2, func() T3)
Lazy4 converts function parameters to thunk functions.
func Lazy4R ¶ added in v0.0.2
func Lazy4R[T0, T1, T2, T3, R any](fn func(T0, T1, T2, T3) R) func(func() T0, func() T1, func() T2, func() T3) R
Lazy4R converts function parameters to thunk functions.
func Lazy4R2 ¶ added in v0.0.2
func Lazy4R2[T0, T1, T2, T3, R0, R1 any](fn func(T0, T1, T2, T3) (R0, R1)) func(func() T0, func() T1, func() T2, func() T3) (R0, R1)
Lazy4R2 converts function parameters to thunk functions.
func Lazy4S ¶ added in v0.0.2
func Lazy4S[T0, T1, T2, T3 any](fn func(T0, T1, T2, ...T3)) func(func() T0, func() T1, func() T2, func() []T3)
Lazy4S converts function parameters to thunk functions.
func Lazy4SR ¶ added in v0.0.2
func Lazy4SR[T0, T1, T2, T3, R any](fn func(T0, T1, T2, ...T3) R) func(func() T0, func() T1, func() T2, func() []T3) R
Lazy4SR converts function parameters to thunk functions.
func Lazy4SR2 ¶ added in v0.0.2
func Lazy4SR2[T0, T1, T2, T3, R0, R1 any](fn func(T0, T1, T2, ...T3) (R0, R1)) func(func() T0, func() T1, func() T2, func() []T3) (R0, R1)
Lazy4SR2 converts function parameters to thunk functions.
func Lazy5 ¶ added in v0.0.2
func Lazy5[T0, T1, T2, T3, T4 any](fn func(T0, T1, T2, T3, T4)) func(func() T0, func() T1, func() T2, func() T3, func() T4)
Lazy5 converts function parameters to thunk functions.
func Lazy5R ¶ added in v0.0.2
func Lazy5R[T0, T1, T2, T3, T4, R any](fn func(T0, T1, T2, T3, T4) R) func(func() T0, func() T1, func() T2, func() T3, func() T4) R
Lazy5R converts function parameters to thunk functions.
func Lazy5R2 ¶ added in v0.0.2
func Lazy5R2[T0, T1, T2, T3, T4, R0, R1 any](fn func(T0, T1, T2, T3, T4) (R0, R1)) func(func() T0, func() T1, func() T2, func() T3, func() T4) (R0, R1)
Lazy5R2 converts function parameters to thunk functions.
func Lazy5S ¶ added in v0.0.2
func Lazy5S[T0, T1, T2, T3, T4 any](fn func(T0, T1, T2, T3, ...T4)) func(func() T0, func() T1, func() T2, func() T3, func() []T4)
Lazy5S converts function parameters to thunk functions.
func Lazy5SR ¶ added in v0.0.2
func Lazy5SR[T0, T1, T2, T3, T4, R any](fn func(T0, T1, T2, T3, ...T4) R) func(func() T0, func() T1, func() T2, func() T3, func() []T4) R
Lazy5SR converts function parameters to thunk functions.
func Lazy5SR2 ¶ added in v0.0.2
func Lazy5SR2[T0, T1, T2, T3, T4, R0, R1 any](fn func(T0, T1, T2, T3, ...T4) (R0, R1)) func(func() T0, func() T1, func() T2, func() T3, func() []T4) (R0, R1)
Lazy5SR2 converts function parameters to thunk functions.
func Not ¶ added in v0.0.2
Example ¶
package main
import (
"fmt"
"slices"
"github.com/parametalol/curry"
"github.com/parametalol/curry/seq"
)
func main() {
fruits := []string{"banana", "banana", "orange", "banana"}
isBanana := curry.BindFirstOf2R(curry.Eq, "banana")
notBanana := curry.Wrap(isBanana, curry.Not)
fmt.Println(slices.Collect(
seq.Filter(slices.Values(fruits),
notBanana),
))
}
Output: [orange]
func Return ¶ added in v0.0.2
func Return[T0 any](arg0 T0) T0
Return just returns the only argument.
Example ¶
package main
import (
"fmt"
"github.com/parametalol/curry"
)
func main() {
// Return binds return value to a function without parameters.
// It can be used for binding a value to lazy functions.
f := func(a string, b string) {
fmt.Println(a, b)
}
lazyF := curry.Lazy2(f)
// Bind "first":
lazyBound := curry.BindFirstOf2(
lazyF, curry.Thunk("first"))
lazyBound(curry.Thunk("second"))
}
Output: first second
func Return2 ¶ added in v0.0.2
func Return2[T0, T1 any](arg0 T0, arg1 T1) (T0, T1)
Return2 just returns the both arguments.
func ReturnS ¶ added in v0.0.2
func ReturnS[T0 any](arg0 ...T0) []T0
Pass just returns the only argument.
func Reverse2 ¶ added in v0.0.2
func Reverse2[T0, T1 any](fn func(T0, T1)) func(T1, T0)
Reverse2 the order of the parameters of a function returning no values.
func Reverse2R ¶ added in v0.0.2
func Reverse2R[T0, T1, R any](fn func(T0, T1) R) func(T1, T0) R
Reverse2R the order of the parameters of a function returning one value.
func Reverse2R2 ¶ added in v0.0.2
func Reverse2R2[T0, T1, R0, R1 any](fn func(T0, T1) (R0, R1)) func(T1, T0) (R0, R1)
Reverse2R2 the order of the parameters of a function returning two values.
func Reverse3 ¶ added in v0.0.2
func Reverse3[T0, T1, T2 any](fn func(T0, T1, T2)) func(T2, T1, T0)
Reverse3 the order of the parameters of a function returning no values.
func Reverse3R ¶ added in v0.0.2
func Reverse3R[T0, T1, T2, R any](fn func(T0, T1, T2) R) func(T2, T1, T0) R
Reverse3R the order of the parameters of a function returning one value.
func Reverse3R2 ¶ added in v0.0.2
func Reverse3R2[T0, T1, T2, R0, R1 any](fn func(T0, T1, T2) (R0, R1)) func(T2, T1, T0) (R0, R1)
Reverse3R2 the order of the parameters of a function returning two values.
func Reverse4 ¶ added in v0.0.2
func Reverse4[T0, T1, T2, T3 any](fn func(T0, T1, T2, T3)) func(T3, T2, T1, T0)
Reverse4 the order of the parameters of a function returning no values.
func Reverse4R ¶ added in v0.0.2
func Reverse4R[T0, T1, T2, T3, R any](fn func(T0, T1, T2, T3) R) func(T3, T2, T1, T0) R
Reverse4R the order of the parameters of a function returning one value.
func Reverse4R2 ¶ added in v0.0.2
func Reverse4R2[T0, T1, T2, T3, R0, R1 any](fn func(T0, T1, T2, T3) (R0, R1)) func(T3, T2, T1, T0) (R0, R1)
Reverse4R2 the order of the parameters of a function returning two values.
func Reverse5 ¶ added in v0.0.2
func Reverse5[T0, T1, T2, T3, T4 any](fn func(T0, T1, T2, T3, T4)) func(T4, T3, T2, T1, T0)
Reverse5 the order of the parameters of a function returning no values.
func Reverse5R ¶ added in v0.0.2
func Reverse5R[T0, T1, T2, T3, T4, R any](fn func(T0, T1, T2, T3, T4) R) func(T4, T3, T2, T1, T0) R
Reverse5R the order of the parameters of a function returning one value.
func Reverse5R2 ¶ added in v0.0.2
func Reverse5R2[T0, T1, T2, T3, T4, R0, R1 any](fn func(T0, T1, T2, T3, T4) (R0, R1)) func(T4, T3, T2, T1, T0) (R0, R1)
Reverse5R2 the order of the parameters of a function returning two values.
func Thunk ¶ added in v0.0.2
func Thunk[T0 any](arg0 T0) func() T0
Thunk takes an argument and constructs a function that returns the argument.
func Thunk2 ¶ added in v0.0.2
func Thunk2[T0, T1 any](arg0 T0, arg1 T1) func() (T0, T1)
Thunk2 takes two arguments and constructs a function that returns these arguments.
func ThunkS ¶ added in v0.0.2
func ThunkS[T0 any](arg0 ...T0) func() []T0
ThunkS takes a variable number of arguments of any type and returns a function, that returns a slice containing the arguments.
func Un2 ¶ added in v0.0.2
func Un2[T0, T1 any](fn func(T0) func(T1)) func(T0, T1)
Un2 transforms a curried function with 2 parameter(s) back into its original form.
func Un2R ¶ added in v0.0.2
func Un2R[T0, T1, R any](fn func(T0) func(T1) R) func(T0, T1) R
Un2R transforms a curried function with 2 parameter(s) back into its original form.
Example ¶
package main
import (
"fmt"
"github.com/parametalol/curry"
)
func main() {
curriedAdd := func(a int) func(int) int {
return func(b int) int {
return a + b
}
}
uncurriedAdd := curry.Un2R(curriedAdd)
result := uncurriedAdd(3, 4)
fmt.Println(result)
}
Output: 7
func Un2R2 ¶ added in v0.0.2
func Un2R2[T0, T1, R0, R1 any](fn func(T0) func(T1) (R0, R1)) func(T0, T1) (R0, R1)
Un2R2 transforms a curried function with 2 parameter(s) back into its original form.
func Un2S ¶ added in v0.0.2
func Un2S[T0, T1 any](fn func(T0) func(...T1)) func(T0, ...T1)
Un2S transforms a curried function with 2 parameter(s) back into its original form.
func Un2SR ¶ added in v0.0.2
func Un2SR[T0, T1, R any](fn func(T0) func(...T1) R) func(T0, ...T1) R
Un2SR transforms a curried function with 2 parameter(s) back into its original form.
func Un2SR2 ¶ added in v0.0.2
func Un2SR2[T0, T1, R0, R1 any](fn func(T0) func(...T1) (R0, R1)) func(T0, ...T1) (R0, R1)
Un2SR2 transforms a curried function with 2 parameter(s) back into its original form.
func Un3 ¶ added in v0.0.2
func Un3[T0, T1, T2 any](fn func(T0) func(T1) func(T2)) func(T0, T1, T2)
Un3 transforms a curried function with 3 parameter(s) back into its original form.
func Un3R ¶ added in v0.0.2
func Un3R[T0, T1, T2, R any](fn func(T0) func(T1) func(T2) R) func(T0, T1, T2) R
Un3R transforms a curried function with 3 parameter(s) back into its original form.
func Un3R2 ¶ added in v0.0.2
func Un3R2[T0, T1, T2, R0, R1 any](fn func(T0) func(T1) func(T2) (R0, R1)) func(T0, T1, T2) (R0, R1)
Un3R2 transforms a curried function with 3 parameter(s) back into its original form.
func Un3S ¶ added in v0.0.2
func Un3S[T0, T1, T2 any](fn func(T0) func(T1) func(...T2)) func(T0, T1, ...T2)
Un3S transforms a curried function with 3 parameter(s) back into its original form.
func Un3SR ¶ added in v0.0.2
func Un3SR[T0, T1, T2, R any](fn func(T0) func(T1) func(...T2) R) func(T0, T1, ...T2) R
Un3SR transforms a curried function with 3 parameter(s) back into its original form.
func Un3SR2 ¶ added in v0.0.2
func Un3SR2[T0, T1, T2, R0, R1 any](fn func(T0) func(T1) func(...T2) (R0, R1)) func(T0, T1, ...T2) (R0, R1)
Un3SR2 transforms a curried function with 3 parameter(s) back into its original form.
func Un4 ¶ added in v0.0.2
func Un4[T0, T1, T2, T3 any](fn func(T0) func(T1) func(T2) func(T3)) func(T0, T1, T2, T3)
Un4 transforms a curried function with 4 parameter(s) back into its original form.
func Un4R ¶ added in v0.0.2
func Un4R[T0, T1, T2, T3, R any](fn func(T0) func(T1) func(T2) func(T3) R) func(T0, T1, T2, T3) R
Un4R transforms a curried function with 4 parameter(s) back into its original form.
func Un4R2 ¶ added in v0.0.2
func Un4R2[T0, T1, T2, T3, R0, R1 any](fn func(T0) func(T1) func(T2) func(T3) (R0, R1)) func(T0, T1, T2, T3) (R0, R1)
Un4R2 transforms a curried function with 4 parameter(s) back into its original form.
func Un4S ¶ added in v0.0.2
func Un4S[T0, T1, T2, T3 any](fn func(T0) func(T1) func(T2) func(...T3)) func(T0, T1, T2, ...T3)
Un4S transforms a curried function with 4 parameter(s) back into its original form.
func Un4SR ¶ added in v0.0.2
func Un4SR[T0, T1, T2, T3, R any](fn func(T0) func(T1) func(T2) func(...T3) R) func(T0, T1, T2, ...T3) R
Un4SR transforms a curried function with 4 parameter(s) back into its original form.
func Un4SR2 ¶ added in v0.0.2
func Un4SR2[T0, T1, T2, T3, R0, R1 any](fn func(T0) func(T1) func(T2) func(...T3) (R0, R1)) func(T0, T1, T2, ...T3) (R0, R1)
Un4SR2 transforms a curried function with 4 parameter(s) back into its original form.
func Un5 ¶ added in v0.0.2
func Un5[T0, T1, T2, T3, T4 any](fn func(T0) func(T1) func(T2) func(T3) func(T4)) func(T0, T1, T2, T3, T4)
Un5 transforms a curried function with 5 parameter(s) back into its original form.
func Un5R ¶ added in v0.0.2
func Un5R[T0, T1, T2, T3, T4, R any](fn func(T0) func(T1) func(T2) func(T3) func(T4) R) func(T0, T1, T2, T3, T4) R
Un5R transforms a curried function with 5 parameter(s) back into its original form.
func Un5R2 ¶ added in v0.0.2
func Un5R2[T0, T1, T2, T3, T4, R0, R1 any](fn func(T0) func(T1) func(T2) func(T3) func(T4) (R0, R1)) func(T0, T1, T2, T3, T4) (R0, R1)
Un5R2 transforms a curried function with 5 parameter(s) back into its original form.
func Un5S ¶ added in v0.0.2
func Un5S[T0, T1, T2, T3, T4 any](fn func(T0) func(T1) func(T2) func(T3) func(...T4)) func(T0, T1, T2, T3, ...T4)
Un5S transforms a curried function with 5 parameter(s) back into its original form.
func Un5SR ¶ added in v0.0.2
func Un5SR[T0, T1, T2, T3, T4, R any](fn func(T0) func(T1) func(T2) func(T3) func(...T4) R) func(T0, T1, T2, T3, ...T4) R
Un5SR transforms a curried function with 5 parameter(s) back into its original form.
func Un5SR2 ¶ added in v0.0.2
func Un5SR2[T0, T1, T2, T3, T4, R0, R1 any](fn func(T0) func(T1) func(T2) func(T3) func(...T4) (R0, R1)) func(T0, T1, T2, T3, ...T4) (R0, R1)
Un5SR2 transforms a curried function with 5 parameter(s) back into its original form.
func Wrap ¶ added in v0.0.2
func Wrap[RV, A, B any](start func(A) B, process ...func(B) RV) func(A) RV
Wrap returns a function that runs start, processes the start result with the provided process functions, and returns the result of the last process.
Example ¶
package main
import (
"fmt"
"strings"
"github.com/parametalol/curry"
)
func main() {
// isValue(string) int is a function that compares a string to "value".
isValue := curry.BindLastOf2R(strings.Compare, "value")
isZero := curry.F2R(curry.Eq[int])(0)
// Construct a chain of processors that returns true if a given string
// is equal to "value" ignoring case when trimmed.
// Return in the end is just for the next lines alignment.
chain := curry.Wrap(curry.Wrap(curry.Wrap(curry.Return(
strings.TrimSpace, // string -> string
), strings.ToLower, // string -> string
), isValue, // string -> int
), isZero, // int -> bool
)
// This is equal to:
// chain := func(s string) bool {
// return strings.Compare(
// strings.ToLower(
// strings.TrimSpace(s)), "value") == 0
// }
fmt.Println(chain("test"), chain(" VALUE "))
}
Output: false true
Types ¶
type FnSig0R ¶ added in v0.0.2
type FnSig0R[R any] struct { RV0 R }
func Signature0R ¶ added in v0.0.2
type FnSig0R2 ¶ added in v0.0.2
type FnSig0R2[R0, R1 any] struct { RV0 R0 RV1 R1 }
func Signature0R2 ¶ added in v0.0.2
type FnSig1 ¶ added in v0.0.2
type FnSig1[T0 any] struct { Arg0 T0 }
func Signature1 ¶ added in v0.0.2
type FnSig1R ¶ added in v0.0.2
func Signature1R ¶ added in v0.0.2
type FnSig1R2 ¶ added in v0.0.2
func Signature1R2 ¶ added in v0.0.2
type FnSig2 ¶ added in v0.0.2
func Signature2 ¶ added in v0.0.2
type FnSig2R ¶ added in v0.0.2
func Signature2R ¶ added in v0.0.2
Example ¶
package main
import (
"fmt"
"slices"
"github.com/parametalol/curry"
)
func main() {
i := 0
odd := func() bool {
i++
return i&1 == 0
}
// slices.DeleteFunc expects func(int) bool. Let's adapt odd: the int
// argument will be ignored.
fmt.Println(
slices.DeleteFunc([]int{1, 2, 3, 4, 5},
curry.Adapt1RF(curry.Signature2R(slices.DeleteFunc[[]int, int]).Arg1, odd)))
}
Output: [1 3 5]
type FnSig2R2 ¶ added in v0.0.2
func Signature2R2 ¶ added in v0.0.2
type FnSig3 ¶ added in v0.0.2
func Signature3 ¶ added in v0.0.2
type FnSig3R ¶ added in v0.0.2
func Signature3R ¶ added in v0.0.2
type FnSig3R2 ¶ added in v0.0.2
func Signature3R2 ¶ added in v0.0.2
type FnSig4 ¶ added in v0.0.2
func Signature4 ¶ added in v0.0.2
type FnSig4R ¶ added in v0.0.2
func Signature4R ¶ added in v0.0.2
type FnSig4R2 ¶ added in v0.0.2
func Signature4R2 ¶ added in v0.0.2
type FnSig5 ¶ added in v0.0.2
func Signature5 ¶ added in v0.0.2
type FnSig5R ¶ added in v0.0.2
func Signature5R ¶ added in v0.0.2
type FnSig5R2 ¶ added in v0.0.2
type FnSig5R2[T0, T1, T2, T3, T4, R0, R1 any] struct { FnSig5[T0, T1, T2, T3, T4] FnSig0R2[R0, R1] }