Plaster
New
List
Login
common-lisp
default
anonymous
2021.08.16 17:13:14
(declaim (inline sq)) (defun sq (x) (* x x)) (defun power-form (n) (check-type n (integer 0)) (cond ((zerop n) 1) ((= n 1) 'x) ((evenp n) (list 'sq (power-form (/ n 2)))) (t (list '* 'x (power-form (1- n)))))) (defun power-lambda-expression (n) (list 'lambda (list 'x) (power-form n))) (defmacro power (n) (power-lambda-expression n))
Raw
Annotate
Repaste
Edit