** Example**

Suppose we have the following definition of a function ` power(x,n)`
that computes *x ^{n}* :

(defun power (x n) (if (= n 0) 1 (if (evenp n) (square (power x (/ n 2))) (* x (power x (- n 1))))))

If this is used with a constant argument ` n`, as is often the case,
the function can be partially evaluated into more efficient code:

(gldefun t3 ((x real)) (power x 5)) (glcp 't3) result type: REAL (LAMBDA (X) (* X (SQUARE (SQUARE X))))The recursive function calls and interpretation (