私は Lisp の分野の初心者です... bfs で 8 パズルを解くコードを書いています...
訪問したリストをグローバルリストに保存し、その値を関数内から定期的に変更したい...
(defparameter *vlist* nil)
(defun bfs-core(node-list)
(let (cur-node tmp-node-list)
(if (null node-list)
NIL
(progn
; (if (= 1 (length node-list))
(setq cur-node (car node-list))
(setq tmp-node-list (cdr node-list))
(if (goalp cur-node)
cur-node
((setq *vlist* (append cur-node *vlist*))
(bfs-core (append tmp-node-list (expand cur-node))))))
)
)
)
defparameter 1 は私のグローバル変数です...そして setq でその値を変更したい関数を使用しています... defvar、setf、set、および可能なすべての組み合わせも使用しました.....誰か助けてくれますか?? ??