gpt4 book ai didi

compiler-errors - Lisp 非法函数调用,

转载 作者:太空宇宙 更新时间:2023-11-03 18:51:10 24 4
gpt4 key购买 nike

下面的代码不断抛出以下错误:

 caught ERROR:

illegal function call

(LET ((SOLUTION 'NIL) (FIRST 0) (SECOND 0))
(DOLIST (EL LST)
(IF (NUMBERP EL)
(PUSH EL SOLUTION)
((SETF #) (SETF #) (PUSH # SOLUTION))))
(CAR SOLUTION))

谁能看出原因?从语法上讲,我看不出有什么问题。注意:我正在使用 sbcl。

我的代码:

(defun evalpostfix (lst)
(let ((solution '())
(first 0)
(second 0))
(dolist (el lst)
(if (numberp el) ;if
(push el solution) ;then
((setf second (pop solution)) ;else
(setf first (pop solution))
(push (funcall el first second) solution))))
(car solution)))

最佳答案

((setf second (pop solution)) - 两个左括号?为什么?带有 else 形式的 IF 的语法是:

(if test-form then-form else-form)

一种形式不能以两个括号开头 - 只有一个异常(exception):((lambda (x) (+ x 1)) 2)

如果您想对多个表达式进行分组,请使用类似 (progn a b c ... z) 的方式。

关于compiler-errors - Lisp 非法函数调用,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16002497/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com