Efficacité: récursivité vs boucle

C'est juste de la curiosité de ma part, mais ce qui est plus efficace, la récursivité ou une boucle?

Donné deux fonctions (à l'aide de common lisp):

(defun factorial_recursion (x)
    (if (> x 0)
        (* x (factorial_recursion (decf x)))
        1))

et

(defun factorial_loop (x)
    (loop for i from 1 to x for result = 1 then
        (* result i) finally
        (return result)))

Qui est plus efficace?

source d'informationauteur SpaceFace