В 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,

Другие вопросы по тегам