我是 lisp 的新手,我的功能有些问题:
(setf (symbol-function 'reduce-our)
#'(lambda(new-expression)
(setf expression nil)
(loop while (not (equal new-expression expression)) do
(setf expression new-expression)
(setf new-expression (reduce-once-our expression))
(if (not (equal 'new-expression 'expression))
(format t " ==> ~A Further reductions are impossible.~%"
new-expression)
new-expression))))
(reduce-our '(^ x => x))
这将引发下一个错误:
Error: The value ^ is not of the expected type NUMBER.
我认为 lisp 正在尝试在 while 循环中评估我的输入列表,但是
(not (equal nil '(^ x => x)))
工作得很好,我相信我的功能也会做同样的检查。所以。我不明白在哪里以及为什么会发生此错误。