IterableFunction
See javadoc - uk.gov.gchq.koryphe.impl.function.IterableFunction
Available since Koryphe version 1.1.0
An IterableFunction is useful for applying a provided function, or functions, to each entry of a supplied Iterable.
Examples
Apply function iteratively
Java
JSON
Full JSON
Python
final IterableFunction<Integer, Integer> function = new IterableFunction<>(new MultiplyBy(2));
{
"class" : "IterableFunction",
"functions" : [ {
"class" : "MultiplyBy",
"by" : 2
} ]
}
{
"class" : "uk.gov.gchq.koryphe.impl.function.IterableFunction",
"functions" : [ {
"class" : "uk.gov.gchq.koryphe.impl.function.MultiplyBy",
"by" : 2
} ]
}
g.IterableFunction(
functions=[
g.MultiplyBy(
by=2
)
]
)
Input type:
java.lang.Iterable
Example inputs:
Input Type | Input | Result Type | Result |
---|---|---|---|
java.util.ArrayList | [1, 2, 3] | uk.gov.gchq.koryphe.util.IterableUtil$MappedIterable | [2, 4, 6] |
java.util.ArrayList | [5, 10, 15] | uk.gov.gchq.koryphe.util.IterableUtil$MappedIterable | [10, 20, 30] |
java.util.ArrayList | [7, 9, 11] | uk.gov.gchq.koryphe.util.IterableUtil$MappedIterable | [14, 18, 22] |
java.util.ArrayList | [1, null, 3] | uk.gov.gchq.koryphe.util.IterableUtil$MappedIterable | [2, null, 6] |
null | null |
Apply multiple functions
Here we build a chain of functions using the IterableFunction's Builder, whereby the output of one function is the input to the next.
Java
JSON
Full JSON
Python
final IterableFunction<Integer, Integer> function = new IterableFunction.Builder<Integer>()
.first(new MultiplyBy(2))
.then(new MultiplyBy(4))
.build();
{
"class" : "IterableFunction",
"functions" : [ {
"class" : "MultiplyBy",
"by" : 2
}, {
"class" : "MultiplyBy",
"by" : 4
} ]
}
{
"class" : "uk.gov.gchq.koryphe.impl.function.IterableFunction",
"functions" : [ {
"class" : "uk.gov.gchq.koryphe.impl.function.MultiplyBy",
"by" : 2
}, {
"class" : "uk.gov.gchq.koryphe.impl.function.MultiplyBy",
"by" : 4
} ]
}
g.IterableFunction(
functions=[
g.MultiplyBy(
by=2
),
g.MultiplyBy(
by=4
)
]
)
Input type:
java.lang.Iterable
Example inputs:
Input Type | Input | Result Type | Result |
---|---|---|---|
java.util.ArrayList | [2, 4, 10] | uk.gov.gchq.koryphe.util.IterableUtil$MappedIterable | [16, 32, 80] |
java.util.ArrayList | [3, 9, 11] | uk.gov.gchq.koryphe.util.IterableUtil$MappedIterable | [24, 72, 88] |
java.util.ArrayList | [1, null, 3] | uk.gov.gchq.koryphe.util.IterableUtil$MappedIterable | [8, null, 24] |
null | null |