@SafeVarargs
	public static <T> T eval(
		final Tree<? extends Op<T>, ?> tree,
		final T... variables
	) {
		return tree.reduce(variables, Function::apply);
	}
Evaluates the given operation tree with the given variables. This method
is equivalent to
{@snippet lang="java":
final T result = tree.reduce(variables, Op::apply);
}
but handles the variable sized {@code variables} array more conveniently.

@see Tree#reduce(Object[], BiFunction)

@param <T> the argument type
@param tree the operation tree
@param variables the input variables
@return the result of the operation tree evaluation
@throws NullPointerException if one of the arguments is {@code null}
@throws IllegalArgumentException if the length of the variable array
        is smaller than the program arity
jenetics.prog/src/main/java/io/jenetics/prog/op/Program.java