public ValueEval evaluate(ValueEval[] args, OperationEvaluationContext ec) {int nIncomingArgs = args.length;if(nIncomingArgs < 1) {throw new RuntimeException("function name argument missing");}ValueEval nameArg = args[0];String functionName;if (nameArg instanceof FunctionNameEval) {functionName = ((FunctionNameEval) nameArg).getFunctionName();} else {throw new RuntimeException("First argument should be a NameEval, but got ("+ nameArg.getClass().getName() + ")");}FreeRefFunction targetFunc = ec.findUserDefinedFunction(functionName);if (targetFunc == null) {throw new NotImplementedFunctionException(functionName);}int nOutGoingArgs = nIncomingArgs -1;ValueEval[] outGoingArgs = new ValueEval[nOutGoingArgs];System.arraycopy(args, 1, outGoingArgs, 0, nOutGoingArgs);return targetFunc.evaluate(outGoingArgs, ec);}

public ValueEval evaluate ( ValueEval [ ] args , OperationEvaluationContext ec ) { int nIncomingArgs = args . length ; if ( nIncomingArgs < 1 ) { throw new RuntimeException ( "function name argument missing" ) ; } ValueEval nameArg = args [ 0 ] ; String functionName ; if ( nameArg instanceof FunctionNameEval ) { functionName = ( ( FunctionNameEval ) nameArg ) . getFunctionName ( ) ; } else { throw new RuntimeException ( "First argument should be a NameEval, but got (" + nameArg . getClass ( ) . getName ( ) + ")" ) ; } FreeRefFunction targetFunc = ec . findUserDefinedFunction ( functionName ) ; if ( targetFunc == null ) { throw new NotImplementedFunctionException ( functionName ) ; } int nOutGoingArgs = nIncomingArgs - 1 ; ValueEval [ ] outGoingArgs = new ValueEval [ nOutGoingArgs ] ; System . arraycopy ( args , 1 , outGoingArgs , 0 , nOutGoingArgs ) ; return targetFunc . evaluate ( outGoingArgs , ec ) ; }
public ValueEval Evaluate(ValueEval[] args, OperationEvaluationContext ec){int nIncomingArgs = args.Length;if (nIncomingArgs < 1){throw new Exception("function name argument missing");}ValueEval nameArg = args[0];String functionName = string.Empty ;if (nameArg is FunctionNameEval){functionName = ((FunctionNameEval)nameArg).FunctionName;}else{throw new Exception("First argument should be a NameEval, but got ("+ nameArg.GetType().Name + ")");}FreeRefFunction targetFunc = ec.FindUserDefinedFunction(functionName);if (targetFunc == null){throw new NotImplementedFunctionException(functionName);}int nOutGoingArgs = nIncomingArgs - 1;ValueEval[] outGoingArgs = new ValueEval[nOutGoingArgs];Array.Copy(args, 1, outGoingArgs, 0, nOutGoingArgs);return targetFunc.Evaluate(outGoingArgs, ec);}
