Top Description Fields Methods
io.vavr

public Interface Function8<T1, T2, T3, T4, T5, T6, T7, T8, R>

extends Serializable
Annotations
@FunctionalInterface
Type Parameters
<T1>
argument 1 of the function
<T2>
argument 2 of the function
<T3>
argument 3 of the function
<T4>
argument 4 of the function
<T5>
argument 5 of the function
<T6>
argument 6 of the function
<T7>
argument 7 of the function
<T8>
argument 8 of the function
<R>
return type of the function
Imports
io.vavr.control.Option, .Try, java.io.Serializable, java.util.HashMap, .Map, .Objects, java.util.concurrent.locks.ReentrantLock, java.util.function.Function

Represents a function with 8 arguments.
Author
Daniel Dietrich

Field Summary

Modifier and TypeField and Description
public static final long

Method Summary

Modifier and TypeMethod and Description
public default <
return type of after
V
>
Function8<T1, T2, T3, T4, T5, T6, T7, T8, V>

Returns:

a function composed of this and after
andThen
(Function<? super R, ? extends V>
the function applied after this
after
)

Returns a composed function that first applies this Function8 to the given argument and then applies Function after to the result.

public R

Returns:

the result of function application
apply
(T1
argument 1
t1
,
T2
argument 2
t2
,
T3
argument 3
t3
,
T4
argument 4
t4
,
T5
argument 5
t5
,
T6
argument 6
t6
,
T7
argument 7
t7
,
T8
argument 8
t8
)

Applies this function to 8 arguments and returns the result.

public default Function7<T2, T3, T4, T5, T6, T7, T8, R>

Returns:

a partial application of this function
apply
(T1
argument 1
t1
)

Applies this function partially to one argument.

public default Function6<T3, T4, T5, T6, T7, T8, R>

Returns:

a partial application of this function
apply
(T1
argument 1
t1
,
T2
argument 2
t2
)

Applies this function partially to two arguments.

public default Function5<T4, T5, T6, T7, T8, R>

Returns:

a partial application of this function
apply
(T1
argument 1
t1
,
T2
argument 2
t2
,
T3
argument 3
t3
)

Applies this function partially to three arguments.

public default Function4<T5, T6, T7, T8, R>

Returns:

a partial application of this function
apply
(T1
argument 1
t1
,
T2
argument 2
t2
,
T3
argument 3
t3
,
T4
argument 4
t4
)

Applies this function partially to 4 arguments.

public default Function3<T6, T7, T8, R>

Returns:

a partial application of this function
apply
(T1
argument 1
t1
,
T2
argument 2
t2
,
T3
argument 3
t3
,
T4
argument 4
t4
,
T5
argument 5
t5
)

Applies this function partially to 5 arguments.

public default Function2<T7, T8, R>

Returns:

a partial application of this function
apply
(T1
argument 1
t1
,
T2
argument 2
t2
,
T3
argument 3
t3
,
T4
argument 4
t4
,
T5
argument 5
t5
,
T6
argument 6
t6
)

Applies this function partially to 6 arguments.

public default Function1<T8, R>

Returns:

a partial application of this function
apply
(T1
argument 1
t1
,
T2
argument 2
t2
,
T3
argument 3
t3
,
T4
argument 4
t4
,
T5
argument 5
t5
,
T6
argument 6
t6
,
T7
argument 7
t7
)

Applies this function partially to 7 arguments.

public default int

Returns:

an int value >= 0
arity
()

Returns the number of function arguments.

public static <
generic parameter type 1 of the resulting function
T1
,
generic parameter type 2 of the resulting function
T2
,
generic parameter type 3 of the resulting function
T3
,
generic parameter type 4 of the resulting function
T4
,
generic parameter type 5 of the resulting function
T5
,
generic parameter type 6 of the resulting function
T6
,
generic parameter type 7 of the resulting function
T7
,
generic parameter type 8 of the resulting function
T8
,
the result type
R
>
Function8<T1, T2, T3, T4, T5, T6, T7, T8, R>

Returns:

a function always returning the given value
constant
(R
the value to be returned
value
)

Returns a function that always returns the constant value that you give in parameter.

public default Function1<T1, Function1<T2, Function1<T3, Function1<T4, Function1<T5, Function1<T6, Function1<T7, Function1<T8, R>>>>>>>>

Returns:

a curried function equivalent to this.
curried
()

Returns a curried version of this function.

public default boolean

Returns:

true, if this function is memoizing, false otherwise
isMemoized
()

Checks if this function is memoizing (= caching) computed values.

public static <
1st argument
T1
,
2nd argument
T2
,
3rd argument
T3
,
4th argument
T4
,
5th argument
T5
,
6th argument
T6
,
7th argument
T7
,
8th argument
T8
,
return type
R
>
Function8<T1, T2, T3, T4, T5, T6, T7, T8, Option<R>>

Returns:

a function that applies arguments to the given partialFunction and returns Some(result) if the function is defined for the given arguments, and None otherwise.
lift
(Function8<? super T1, ? super T2, ? super T3, ? super T4, ? super T5, ? super T6, ? super T7, ? super T8, ? extends R>
a function that is not defined for all values of the domain (e.g. by throwing)
partialFunction
)

Lifts the given partialFunction into a total function that returns an Option result.

public static <
1st argument
T1
,
2nd argument
T2
,
3rd argument
T3
,
4th argument
T4
,
5th argument
T5
,
6th argument
T6
,
7th argument
T7
,
8th argument
T8
,
return type
R
>
Function8<T1, T2, T3, T4, T5, T6, T7, T8, Try<R>>

Returns:

a function that applies arguments to the given partialFunction and returns Success(result) if the function is defined for the given arguments, and Failure(throwable) otherwise.
liftTry
(Function8<? super T1, ? super T2, ? super T3, ? super T4, ? super T5, ? super T6, ? super T7, ? super T8, ? extends R>
a function that is not defined for all values of the domain (e.g. by throwing)
partialFunction
)

Lifts the given partialFunction into a total function that returns an Try result.

public default Function8<T1, T2, T3, T4, T5, T6, T7, T8, R>

Returns:

a memoizing function equivalent to this.
memoized
()

Returns a memoizing version of this function, which computes the return value for given arguments only one time.

public static <
1st argument
T1
,
2nd argument
T2
,
3rd argument
T3
,
4th argument
T4
,
5th argument
T5
,
6th argument
T6
,
7th argument
T7
,
8th argument
T8
,
return type
R
>
Function8<T1, T2, T3, T4, T5, T6, T7, T8, R>

Returns:

the given f instance as narrowed type Function8<T1, T2, T3, T4, T5, T6, T7, T8, R>
narrow
(Function8<? super T1, ? super T2, ? super T3, ? super T4, ? super T5, ? super T6, ? super T7, ? super T8, ? extends R>
A Function8
f
)

Narrows the given Function8<?

public static <
1st argument
T1
,
2nd argument
T2
,
3rd argument
T3
,
4th argument
T4
,
5th argument
T5
,
6th argument
T6
,
7th argument
T7
,
8th argument
T8
,
return type
R
>
Function8<T1, T2, T3, T4, T5, T6, T7, T8, R>

Returns:

a Function8
of
(Function8<T1, T2, T3, T4, T5, T6, T7, T8, R>
(typically) a method reference, e.g. Type::method
methodReference
)

Creates a Function8 based on

public default Function8<T8, T7, T6, T5, T4, T3, T2, T1, R>

Returns:

a reversed function equivalent to this.
reversed
()

Returns a reversed version of this function.

public default Function1<Tuple8<T1, T2, T3, T4, T5, T6, T7, T8>, R>

Returns:

a tupled function equivalent to this.
tupled
()

Returns a tupled version of this function.

Field Detail

serialVersionUIDback to summary
public static final long serialVersionUID

The serial version uid.

Method Detail

andThenback to summary
public default <V> Function8<T1, T2, T3, T4, T5, T6, T7, T8, V> andThen(Function<? super R, ? extends V> after)

Returns a composed function that first applies this Function8 to the given argument and then applies Function after to the result.

Parameters
<V>
return type of after
after:Function<? super R, ? extends V>

the function applied after this

Returns:Function8<T1, T2, T3, T4, T5, T6, T7, T8, V>

a function composed of this and after

Exceptions
NullPointerException:
if after is null
applyback to summary
public R apply(T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8)

Applies this function to 8 arguments and returns the result.

Parameters
t1:T1

argument 1

t2:T2

argument 2

t3:T3

argument 3

t4:T4

argument 4

t5:T5

argument 5

t6:T6

argument 6

t7:T7

argument 7

t8:T8

argument 8

Returns:R

the result of function application

applyback to summary
public default Function7<T2, T3, T4, T5, T6, T7, T8, R> apply(T1 t1)

Applies this function partially to one argument.

Parameters
t1:T1

argument 1

Returns:Function7<T2, T3, T4, T5, T6, T7, T8, R>

a partial application of this function

applyback to summary
public default Function6<T3, T4, T5, T6, T7, T8, R> apply(T1 t1, T2 t2)

Applies this function partially to two arguments.

Parameters
t1:T1

argument 1

t2:T2

argument 2

Returns:Function6<T3, T4, T5, T6, T7, T8, R>

a partial application of this function

applyback to summary
public default Function5<T4, T5, T6, T7, T8, R> apply(T1 t1, T2 t2, T3 t3)

Applies this function partially to three arguments.

Parameters
t1:T1

argument 1

t2:T2

argument 2

t3:T3

argument 3

Returns:Function5<T4, T5, T6, T7, T8, R>

a partial application of this function

applyback to summary
public default Function4<T5, T6, T7, T8, R> apply(T1 t1, T2 t2, T3 t3, T4 t4)

Applies this function partially to 4 arguments.

Parameters
t1:T1

argument 1

t2:T2

argument 2

t3:T3

argument 3

t4:T4

argument 4

Returns:Function4<T5, T6, T7, T8, R>

a partial application of this function

applyback to summary
public default Function3<T6, T7, T8, R> apply(T1 t1, T2 t2, T3 t3, T4 t4, T5 t5)

Applies this function partially to 5 arguments.

Parameters
t1:T1

argument 1

t2:T2

argument 2

t3:T3

argument 3

t4:T4

argument 4

t5:T5

argument 5

Returns:Function3<T6, T7, T8, R>

a partial application of this function

applyback to summary
public default Function2<T7, T8, R> apply(T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6)

Applies this function partially to 6 arguments.

Parameters
t1:T1

argument 1

t2:T2

argument 2

t3:T3

argument 3

t4:T4

argument 4

t5:T5

argument 5

t6:T6

argument 6

Returns:Function2<T7, T8, R>

a partial application of this function

applyback to summary
public default Function1<T8, R> apply(T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7)

Applies this function partially to 7 arguments.

Parameters
t1:T1

argument 1

t2:T2

argument 2

t3:T3

argument 3

t4:T4

argument 4

t5:T5

argument 5

t6:T6

argument 6

t7:T7

argument 7

Returns:Function1<T8, R>

a partial application of this function

arityback to summary
public default int arity()

Returns the number of function arguments.

Returns:int

an int value >= 0

See Also
Arity
constantback to summary
public static <T1, T2, T3, T4, T5, T6, T7, T8, R> Function8<T1, T2, T3, T4, T5, T6, T7, T8, R> constant(R value)

Returns a function that always returns the constant value that you give in parameter.

Parameters
<T1>
generic parameter type 1 of the resulting function
<T2>
generic parameter type 2 of the resulting function
<T3>
generic parameter type 3 of the resulting function
<T4>
generic parameter type 4 of the resulting function
<T5>
generic parameter type 5 of the resulting function
<T6>
generic parameter type 6 of the resulting function
<T7>
generic parameter type 7 of the resulting function
<T8>
generic parameter type 8 of the resulting function
<R>
the result type
value:R

the value to be returned

Returns:Function8<T1, T2, T3, T4, T5, T6, T7, T8, R>

a function always returning the given value

curriedback to summary
public default Function1<T1, Function1<T2, Function1<T3, Function1<T4, Function1<T5, Function1<T6, Function1<T7, Function1<T8, R>>>>>>>> curried()

Returns a curried version of this function.

Returns:Function1<T1, Function1<T2, Function1<T3, Function1<T4, Function1<T5, Function1<T6, Function1<T7, Function1<T8, R>>>>>>>>

a curried function equivalent to this.

isMemoizedback to summary
public default boolean isMemoized()

Checks if this function is memoizing (= caching) computed values.

Returns:boolean

true, if this function is memoizing, false otherwise

liftback to summary
public static <T1, T2, T3, T4, T5, T6, T7, T8, R> Function8<T1, T2, T3, T4, T5, T6, T7, T8, Option<R>> lift(Function8<? super T1, ? super T2, ? super T3, ? super T4, ? super T5, ? super T6, ? super T7, ? super T8, ? extends R> partialFunction)

Lifts the given partialFunction into a total function that returns an Option result.

Parameters
<T1>
1st argument
<T2>
2nd argument
<T3>
3rd argument
<T4>
4th argument
<T5>
5th argument
<T6>
6th argument
<T7>
7th argument
<T8>
8th argument
<R>
return type
partialFunction:Function8<? super T1, ? super T2, ? super T3, ? super T4, ? super T5, ? super T6, ? super T7, ? super T8, ? extends R>

a function that is not defined for all values of the domain (e.g. by throwing)

Returns:Function8<T1, T2, T3, T4, T5, T6, T7, T8, Option<R>>

a function that applies arguments to the given partialFunction and returns Some(result) if the function is defined for the given arguments, and None otherwise.

Annotations
@SuppressWarnings:RedundantTypeArguments
liftTryback to summary
public static <T1, T2, T3, T4, T5, T6, T7, T8, R> Function8<T1, T2, T3, T4, T5, T6, T7, T8, Try<R>> liftTry(Function8<? super T1, ? super T2, ? super T3, ? super T4, ? super T5, ? super T6, ? super T7, ? super T8, ? extends R> partialFunction)

Lifts the given partialFunction into a total function that returns an Try result.

Parameters
<T1>
1st argument
<T2>
2nd argument
<T3>
3rd argument
<T4>
4th argument
<T5>
5th argument
<T6>
6th argument
<T7>
7th argument
<T8>
8th argument
<R>
return type
partialFunction:Function8<? super T1, ? super T2, ? super T3, ? super T4, ? super T5, ? super T6, ? super T7, ? super T8, ? extends R>

a function that is not defined for all values of the domain (e.g. by throwing)

Returns:Function8<T1, T2, T3, T4, T5, T6, T7, T8, Try<R>>

a function that applies arguments to the given partialFunction and returns Success(result) if the function is defined for the given arguments, and Failure(throwable) otherwise.

memoizedback to summary
public default Function8<T1, T2, T3, T4, T5, T6, T7, T8, R> memoized()

Returns a memoizing version of this function, which computes the return value for given arguments only one time. On subsequent calls given the same arguments the memoized value is returned.

Please note that memoizing functions do not permit null as single argument or return value.

Returns:Function8<T1, T2, T3, T4, T5, T6, T7, T8, R>

a memoizing function equivalent to this.

narrowback to summary
public static <T1, T2, T3, T4, T5, T6, T7, T8, R> Function8<T1, T2, T3, T4, T5, T6, T7, T8, R> narrow(Function8<? super T1, ? super T2, ? super T3, ? super T4, ? super T5, ? super T6, ? super T7, ? super T8, ? extends R> f)

Narrows the given Function8<? super T1, ? super T2, ? super T3, ? super T4, ? super T5, ? super T6, ? super T7, ? super T8, ? extends R> to Function8<T1, T2, T3, T4, T5, T6, T7, T8, R>

Parameters
<T1>
1st argument
<T2>
2nd argument
<T3>
3rd argument
<T4>
4th argument
<T5>
5th argument
<T6>
6th argument
<T7>
7th argument
<T8>
8th argument
<R>
return type
f:Function8<? super T1, ? super T2, ? super T3, ? super T4, ? super T5, ? super T6, ? super T7, ? super T8, ? extends R>

A Function8

Returns:Function8<T1, T2, T3, T4, T5, T6, T7, T8, R>

the given f instance as narrowed type Function8<T1, T2, T3, T4, T5, T6, T7, T8, R>

Annotations
@SuppressWarnings:unchecked
ofback to summary
public static <T1, T2, T3, T4, T5, T6, T7, T8, R> Function8<T1, T2, T3, T4, T5, T6, T7, T8, R> of(Function8<T1, T2, T3, T4, T5, T6, T7, T8, R> methodReference)

Creates a Function8 based on

Examples (w.l.o.g. referring to Function1):
// using a lambda expression
Function1<Integer, Integer> add1 = Function1.of(i -> i + 1);

// using a method reference (, e.g. Integer method(Integer i) { return i + 1; })
Function1<Integer, Integer> add2 = Function1.of(this::method);

// using a lambda reference
Function1<Integer, Integer> add3 = Function1.of(add1::apply);

Caution

Reflection loses type information of lambda references.

// type of a lambda expression
Type<?, ?> type1 = add1.getType(); // (Integer) -> Integer

// type of a method reference
Type<?, ?> type2 = add2.getType(); // (Integer) -> Integer

// type of a lambda reference
Type<?, ?> type3 = add3.getType(); // (Object) -> Object
Parameters
<T1>
1st argument
<T2>
2nd argument
<T3>
3rd argument
<T4>
4th argument
<T5>
5th argument
<T6>
6th argument
<T7>
7th argument
<T8>
8th argument
<R>
return type
methodReference:Function8<T1, T2, T3, T4, T5, T6, T7, T8, R>

(typically) a method reference, e.g. Type::method

Returns:Function8<T1, T2, T3, T4, T5, T6, T7, T8, R>

a Function8

reversedback to summary
public default Function8<T8, T7, T6, T5, T4, T3, T2, T1, R> reversed()

Returns a reversed version of this function. This may be useful in a recursive context.

Returns:Function8<T8, T7, T6, T5, T4, T3, T2, T1, R>

a reversed function equivalent to this.

tupledback to summary
public default Function1<Tuple8<T1, T2, T3, T4, T5, T6, T7, T8>, R> tupled()

Returns a tupled version of this function.

Returns:Function1<Tuple8<T1, T2, T3, T4, T5, T6, T7, T8>, R>

a tupled function equivalent to this.