宿題の一部としてペアのリストを作成しようとしています。
(関数の途中で)やってみました
(setq list1 (append list1 (cons n1 n2)))
そして、何らかの理由で私は理解していません、これは最初のペアでうまく機能しますが、2番目のペアを追加しようとすると、このエラーがポップアップします:
***-追加:適切なリストは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
最後にあるのか理解できますか?