LispValue fnArgs = args.cdr();
// The last arg must be a list.
if (!validArgumentList(args))
throw new WrongArgumentTypeException("APPLY", "a CONS in the last argument",
"a " + fnArgs.last().car().type_of().toString());
machine.S.push(f_lisp.makeCons(fn, f_lisp.COMPILER.quoteList(constructArgList(fnArgs))));
// (mh) 4 Sep 2004
// This seems like a kludge, but I don't know how to get around it.
// if the fn is a user-defined function, we have to move the arguments to the E register.