Какая разница между невычисленным списком и списком? - Lisp
Формулировка задачи:
Какая разница между невычисленным списком и списком? Я немного не врубаюсь прост.
(defvar x 10) X * x 10 * (defvar k '(x x x)) K * k (X X X) * (setf k (list x x x)) (10 10 10) * k (10 10 10) * (defvar z '(x x x)) Z * z (X X X) * (car z) X *
Почему (defvar k '(x x x)) не даст (10 10 10)?
Решение задачи: «Какая разница между невычисленным списком и списком?»
textual
Листинг программы
(let ((x 111) (y 222) (z 333) (u '(a b c))) `(x ,x y ,y z ,z u ,u u ,@u)) ==> (x 111 y 222 z 333 u (a b c) u a b c)
Объяснение кода листинга программы
В данном коде используется функция let, которая создает четыре переменные: x, y, z, u. Переменным x, y, z присваиваются значения 111, 222, 333 соответственно. Переменной u присваивается список (a b c). Затем с помощью списковой нотации происходит присваивание значений переменным x, y, z, u. В результате получается список (x 111 y 222 z 333 u (a b c) u a b c).