我正在尝试将配对列表作为家庭作业的一部分。
我试着做(在函数中间的某个地方)
(setq list1 (append list1 (cons n1 n2)))
由于某种原因,我不明白,这适用于第一对,但是当我尝试附加第二对时,会弹出此错误:
*** - APPEND:正确的列表不能以 2 结尾
我该如何解决这个问题?
所以,继续这个主题,感谢给出的答案,我能够纠正我的问题。但是一个新的出现了,我认为它与它有关。所以,我有这个功能:
(defun action(state)
(let ((list_actions '())
(limNumActions (1- (list-length state)))
(limNumSubActions 0)
(numActions 0)
(numSubActions 0))
(loop for numActions from 0 to limNumActions do
(setq limNumSubActions (1- (list-length (nth numActions state))))
(loop for numSubActions from 0 to limNumSubActions do
(setq list_actions (append list_actions
(list (cons numActions numSubActions))))
(print 'list_actions)
(print list_actions)))))
我将该print
函数用作简单的“调试器”。它返回这个:
LIST_ACTIONS
((0 . 0))
LIST_ACTIONS
((0 . 0) (0 . 1))
LIST_ACTIONS
((0 . 0) (0 . 1) (1 . 0))
LIST_ACTIONS
((0 . 0) (0 . 1) (1 . 0) (1 . 1))
NIL
而这正是我所期待的结果!除了NIL
部分...你能理解为什么列表list_actions
在NIL
最后吗?