В newLISP цитата отличается от '?
Я начинаю изучать newlisp, но цитирую и озадачиваю меня.
> (= '(quote 1) ''1)
nil
или же
> (first (quote (quote 1)))
quote
> (first ''1)
ERR: array, list or string expected in function first : ''1
в newlisp, цитата отличается от '?
или это ошибка?
1 ответ
Решение
Существует тонкая разница между ними. Одиночная кавычка разрешается во время перевода исходного кода, когда заключенная в кавычки ячейка помещается в защитный конверт. Функция quote
делает то же самое, но во время оценки. Для большинства целей они ведут себя одинаково.
Так что функция quote
больше похоже на оригинальный Лисп quote
, '
оптимизация, выполняемая во время перевода кода Если вы хотите узнать больше о переводе и оценке кода, сравните функции read-expr
а также eval-string
,