Почему это, что Common Lisp синтаксис массива не оценивает свои аргументы:Common Lisp: Почему массивные литералы не оценивают аргументы?
(let ((a 1)) #2A((a 2) (3 4)))
=> #2A((A 2) (3 4))
Я бы предположил, что это был #2A((1 2) (3 4))
. Это потому, что A
недоступен во время чтения?
Ожидаете ли вы список буквальных ''((a 3) (3 4))' для оценки? – kwatford
Является '' ((a 2) (3 4)) 'листом списка? Я думал, что это 'quote' и' ((a 2) (3 4)) 'был листом списка. –
'' 'это просто макрос читателя для' quote'. Итак, '' ((a 2) (3 4)) 'is just' (quote ((a 2) (3 4))). В исходном коде для общей программы lisp цитируемый список является литералом списка. Голые списки представляют собой код программы, а не ее данные. Сначала это немного запутывает, но это будет иметь смысл позже. – kwatford