static <T> Op<T> of(
		final String name,
		final int arity,
		final Function<T[], T> function
	) {
		return new Operation<>(name, arity, function);
	}
Create a new operation from the given parameter.

@param name the operation name
@param arity the arity of the operation
@param function the function executed by the operation. In order to work
       properly, the given function should be stateless and must not have
       side effects.
@param <T> the operation type
@return a new operation from the given parameter
@throws NullPointerException if the given {@code name} or {@code function}
        is {@code null}
@throws IllegalArgumentException if the given {@code arity} is smaller
        than zero
jenetics.prog/src/main/java/io/jenetics/prog/op/Op.java