@Override
	public A apply(final A[] args) {
		checkTreeState();
		return Program.eval(this, args);
	}
Evaluates this program gene (recursively) with the given variable values.

@see ProgramGene#eval(Object[])
@see ProgramChromosome#eval(Object[])

@param args the input variables
@return the evaluated value
@throws NullPointerException if the given variable array is {@code null}
jenetics.prog/src/main/java/io/jenetics/prog/ProgramGene.java