Почему у Схемы есть и список, и цитата? - PullRequest
11 голосов
/ 25 января 2012

Так как (список 1 2 3) приводит к (1 2 3) и (цитата (1 2 3)), приводит к (1 2 3), каково обоснование того, что оба варианта имеют значение?так что запаситесь, они должны иметь какую-то значимую разницу.Что это?

Ответы [ 2 ]

27 голосов
/ 25 января 2012

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

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

5 голосов
/ 25 января 2012

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...