2011-12-23 5 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

+0

У меня было, но я уже исправил это. : D спасибо, в любом случае. – elias

+0

В чем вы работаете? 'let' в Common Lisp не работает так, как и Scheme's. – mange

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

' расширяется до (quote ...), которые в основном означает, что «не оценить это, просто вернуть его мне как список". Он используется для разделения данных из кода (которые в lisp являются связанными понятиями).

Смежные вопросы