(describe-function apply) says:
apply is a built-in function in ‘src/eval.c’. (apply FUNCTION &rest ARGUMENTS) Call FUNCTION with our remaining args, using our last arg as list of args. Then return the value FUNCTION returns. Thus, (apply '+ 1 2 '(3 4)) returns 10.
(describe-function funcall) says:
funcall is a built-in function in ‘src/eval.c’. (funcall FUNCTION &rest ARGUMENTS) Call first argument as a function, passing remaining arguments to it. Return the value that function returns. Thus, (funcall 'cons 'x 'y) returns (x . y).
What is the difference between these two function?