/**
<p> Basic functions for lambda expressions and method references.</p>
Most often, functions do not have a state and can be called concurrently,
as indicated by the annotation {@link javolution.lang.Parallelizable Parallelizable}.</p>
<p> Functions may take an arbitrary number of arguments through the use of
{@link javolution.util.function.MultiVariable multi-variables}
or no argument at all using the standard {@link java.lang.Void} class.
[code]
// Function populating a list of integer and returning void.
Function<MultiVariable<List<Integer>, Integer>, Void> fill = new Function<>() {
public Void apply(MultiVariable<List<Integer>, Integer> params) {
List<Integer> list = params.getLeft();
for (int i = 0, n = params.getRight(); i < n; i++) {
list.add(i);
}
return null;
}
};
FastTable<Integer> list = new FastTable<Integer>();
fill.apply(new MultiVariable(list, 100)); // Populates with numbers [0 .. 100[
[/code]</p>
*/
package javolution.util.function;