Documentation
¶
Overview ¶
Package gfunc provide operations of functions.
Please refer to README.md for details.
Example ¶
add := Partial2(gvalue.Add[int]) // Cast f to "partial application"-able function add1 := add.Partial(1) // Bind argument a to 1 fmt.Println(add1(0)) // 0 + 1 = 1 fmt.Println(add1(1)) // add1 can be reused, 1 + 1 = 2 add1n2 := add1.PartialR(2) // Bind argument b to 2, all arguments are fixed fmt.Println(add1n2()) // 1 + 2 = 3
Output: 1 2 3
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Func0 ¶
type Func0[R any] func() R
Func0 is a function with 0 argument and 1 return value (nullary function).
type Func1 ¶
type Func1[T1, R any] func(T1) R
Func1 is a function with 1 argument and 1 return value (unary function), which supports partial application.
type Func2 ¶
type Func2[T1, T2, R any] func(T1, T2) R
Func2 is a function with 2 arguments and 1 return value (2-ary function), which supports partial application.
type Func3 ¶
type Func3[T1, T2, T3, R any] func(T1, T2, T3) R
Func3 is a function with 3 arguments and 1 return value (3-ary function), which supports partial application.
type Func4 ¶
type Func4[T1, T2, T3, T4, R any] func(T1, T2, T3, T4) R
Func4 is a function with 4 arguments and 1 return value (4-ary function), which supports partial application.
type Func5 ¶
type Func5[T1, T2, T3, T4, T5, R any] func(T1, T2, T3, T4, T5) R
Func5 is a function with 5 arguments and 1 return value (5-ary function), which supports partial application.
func Partial5 ¶
func Partial5[T1, T2, T3, T4, T5, R any](f Func5[T1, T2, T3, T4, T5, R]) Func5[T1, T2, T3, T4, T5, R]
Partial5 casts function f with 5 arguments and 1 return value to Func5
type Func6 ¶
type Func6[T1, T2, T3, T4, T5, T6, R any] func(T1, T2, T3, T4, T5, T6) R
Func6 is a function with 6 arguments and 1 return value (6-ary function), which supports partial application.
func Partial6 ¶
func Partial6[T1, T2, T3, T4, T5, T6, R any](f Func6[T1, T2, T3, T4, T5, T6, R]) Func6[T1, T2, T3, T4, T5, T6, R]
Partial6 casts function f with 6 arguments and 1 return value to Func6
type Func7 ¶
type Func7[T1, T2, T3, T4, T5, T6, T7, R any] func(T1, T2, T3, T4, T5, T6, T7) R
Func7 is a function with 7 arguments and 1 return value (7-ary function), which supports partial application.
func Partial7 ¶
func Partial7[T1, T2, T3, T4, T5, T6, T7, R any](f Func7[T1, T2, T3, T4, T5, T6, T7, R]) Func7[T1, T2, T3, T4, T5, T6, T7, R]
Partial7 casts function f with 7 arguments and 1 return value to Func7
type Func8 ¶
type Func8[T1, T2, T3, T4, T5, T6, T7, T8, R any] func(T1, T2, T3, T4, T5, T6, T7, T8) R
Func8 is a function with 8 arguments and 1 return value (8-ary function), which supports partial application.
func Partial8 ¶
func Partial8[T1, T2, T3, T4, T5, T6, T7, T8, R any](f Func8[T1, T2, T3, T4, T5, T6, T7, T8, R]) Func8[T1, T2, T3, T4, T5, T6, T7, T8, R]
Partial8 casts function f with 8 arguments and 1 return value to Func8
type Func9 ¶
type Func9[T1, T2, T3, T4, T5, T6, T7, T8, T9, R any] func(T1, T2, T3, T4, T5, T6, T7, T8, T9) R
Func9 is a function with 9 arguments and 1 return value (9-ary function), which supports partial application.
func Partial9 ¶
func Partial9[T1, T2, T3, T4, T5, T6, T7, T8, T9, R any](f Func9[T1, T2, T3, T4, T5, T6, T7, T8, T9, R]) Func9[T1, T2, T3, T4, T5, T6, T7, T8, T9, R]
Partial9 casts function f with 9 arguments and 1 return value to Func9
type Func10 ¶
type Func10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, R any] func(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10) R
Func10 is a function with 10 arguments and 1 return value (10-ary function), which supports partial application.
func Partial10 ¶
func Partial10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, R any](f Func10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, R]) Func10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, R]
Partial10 casts function f with 10 arguments and 1 return value to Func10
func (Func10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, R]) Partial ¶
func (f Func10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, R]) Partial(t1 T1) Func9[T2, T3, T4, T5, T6, T7, T8, T9, T10, R]
Partial binds the first argument (from left to right) of Func10 f to value t1, producing Func9 of smaller arity.
func (Func10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, R]) PartialR ¶
func (f Func10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, R]) PartialR(t10 T10) Func9[T1, T2, T3, T4, T5, T6, T7, T8, T9, R]
PartialR binds the first argument (from right to left) of Func10 f to value t10, producing Func9 of smaller arity.