I wrote the Lisp function as follows:
(defun power (base exponent) (if (= exponent 0) 1 (* base (power (- exponent 1)))))
When I try to call it, I get some errors:
CL-USER 2 > (power 2 3) Error: POWER got 1 arg, wanted at least 2. 1 (abort) Return to level 0. 2 Return to top loop level 0. Type :b for backtrace or :c <option number> to proceed. Type :bug-form "<subject>" for a bug report template or :? for other options. CL-USER 3 : 1 > (power 2) Error: POWER got 1 arg, wanted at least 2. 1 (abort) Return to level 1. 2 Return to debug level 1. 3 Return to level 0. 4 Return to top loop level 0. Type :b for backtrace or :c <option number> to proceed. Type :bug-form "<subject>" for a bug report template or :? for other options. CL-USER 4 : 2 > (power 2 3 4) Error: POWER got 3 args, wanted 2. 1 (continue) Ignore the extra arg. 2 (abort) Return to level 2. 3 Return to debug level 2. 4 Return to level 1. 5 Return to debug level 1. 6 Return to level 0. 7 Return to top loop level 0. Type :b for backtrace or :c <option number> to proceed. Type :bug-form "<subject>" for a bug report template or :? for other options.
What's going on here? If I give him two arguments, he thinks I gave him this. If I give three, I think I gave three. If I give him one, he thinks I gave him one ...
source share