Quando você usa "apply" e quando "funcall"?

oLisp HyperSpec comum diz nofuncall entrada que

(funcall function arg1 arg2 ...) 
==  (apply function arg1 arg2 ... nil) 
==  (apply function (list arg1 arg2 ...))

Como eles são de alguma forma equivalentes, quando você usariaapply, e quandofuncall?