0

根据我的老师告诉我的,我应该使用 let 声明局部变量和 setf 声明全局变量。

我尝试运行以下代码:

(let (state-list (problem-initial-state problem))
  (print state-list))

我得到零。

但是,当我尝试以下操作时:

(setf state-list (problem-initial-state problem))
  (print final-list)

我得到了想要的值(问题初始状态问题中的值)。

这是为什么?

PS:我为这些初学者问题道歉,我很难进入 LISP,来自 C 背景。

4

1 回答 1

2

您的let表单中缺少几个括号:

(let ((a 1)
      (b 2))
  (print (list a b)))

将打印(1 2)

你的表格

(let (state-list (problem-initial-state problem))
  (print state-list))

绑定state-listnil和。problem-initial-state_problem

于 2016-11-09T18:40:28.160 回答