我正在开发一个 Lisp 程序,该程序包含读取框尺寸的代码,然后将它们从最短到最长进行排序(并将这些新长度中的每一个设置为新变量)。
当我尝试将文件加载到解释器中时,出现以下错误:
*** - EVAL: undefined function NEW-D1
我很困惑为什么我会收到这个错误,因为new-d1
它不是一个函数,它是一个给定框最短边长度的变量。
这new-d1
是第一次初始化和设置的代码:
(defun get-box ()
(let ((d1 0) (d2 0) (d3 0) (new-d1 0) (new-d2 0) (new-d3 0))
(setf d1 (read))
(setf d2 (read))
(setf d3 (read))
(if (= d1 -1)
(exit)
(progn
(setq new-d1 (first (sort (list d1 d2 d3) #'<)))
(setq new-d2 (second (sort (list d1 d2 d3) #'<)))
(setq new-d3 (third (sort (list d1 d2 d3) #'<)))
(next-part-of-program (new-d1 new-d2 new-d3))))))
如何更改我的代码,以便解释器知道 new-d1 不是函数并且不会将其视为函数?谢谢你的帮助!
编辑添加:程序代码的下一部分:
(defun next-part-of-program(d1 d2 d3)
(if (> d2 b)
(put-on-c-list(d1 c-list))
(if (> d2 a) and (< d2 c)
(put-on-b-list (d1 b-list))
(put-on-a-list (d1 a-list)))))
注意:我之前已将 a-list、b-list 和 c-list 初始化为稍后添加的全局变量/列表。
再次感谢!