2011-12-23 51 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中是相關的概念)。