2011-12-23 52 views
0

我正在学习Lisp。我正在实施一些相对简单的问题的解决方案。我想代表像这样的问题的初始状态的列表Lisp用列表初始化变量

((0 1) (2 3) (5 4)) 

我想创建变量并将该列表分配给它。我试过

(let ((initial-state ((0 1) (2 3) (5 4))))) 

但是这样不会编译。之后,我已经尝试过

(let ((initial-state list (list 0 1) (list 2 3) (list 5 4)))) 

这是有效的,但它太长了。有没有更好的方法来做到这一点?

回答

3

你的意思是?

(let ((initial-state '((0 1) (2 3) (5 4)))) ...) 

该单引号是引用。 :) 更多报价这里:

+0

你忘记了一些括号? – mange 2011-12-23 13:33:37

+0

我曾经,但我已经修好了。 :D谢谢,无论如何。 – elias 2011-12-23 13:37:48

+0

你在做什么lisp? Common Lisp中的'let'不会这样工作,Scheme也不行。 – mange 2011-12-23 13:39:58

5
(let ((initial-state '((0 1) (2 3) (4 5)))) 
    ...) 

'扩展到(quote ...)这基本上意味着“不评价这个,就还给我的清单”。它用于从代码中分离数据(在lisp中是相关的概念)。