我正在尝试实现计算平方和的 Common Lisp 函数。我有这个:
[1]> (defun sum-of-squares (x)
(reduce +
(mapcar
#'(lambda (x) (* x x))
(x)
)))
REPL 毫无怨言地接受它,但是当我尝试使用它时:
[2]> (sum-of-squares '(1 2 3))
我明白了:
*** - EVAL: undefined function X
The following restarts are available:
USE-VALUE :R1 Input a value to be used instead of (FDEFINITION 'X).
RETRY :R2 Retry
STORE-VALUE :R3 Input a new value for (FDEFINITION 'X).
ABORT :R4 Abort main loop
我认为x
in mapcar 被解释为一个函数。我究竟做错了什么?