Подтвердить что ты не робот

Почему у Схемы есть список и цитата?

Так как (список 1 2 3) дает (1 2 3) и (цитата (1 2 3)) дает (1 2 3), что является обоснованием наличия обоих?

Так как схема в противном случае настолько свободна, они должны иметь некоторую значимую разницу. Что это?

4b9b3361

Ответ 1

В приведенном примере quote и list имеют тот же результат, потому что числовые константы оценивают сами. Если вы используете выражения, которые не являются самооценками в списке (например, переменные или вызовы функций), вы увидите разницу:

(quote (a b c)) предоставит вам список, содержащий символы a, b и c, а (list a b c) предоставит вам список, содержащий значения переменных a, b и c (или ошибка, если переменные не существуют).

Ответ 2

Список создает список, поэтому (список 1 2 3) создает список из трех элементов.

Цитата предотвращает оценку. Без цитаты выражение (1 2 3) будет оцениваться как функция 1, называемая аргументами 2 и 3, что, очевидно, не имеет смысла. Цитата предотвращает оценку и просто возвращает список, который буквально указывается в его внешней печатной форме как (1 2 3).