Маленький Схемер против атома (цитата атома) - PullRequest
0 голосов
/ 16 декабря 2018

Я только начал читать Маленький интриган .Он начинается с нескольких вопросов, спрашивающих, является ли данное выражение атомом.Это довольно просто, но, как ни странно, самый первый вопрос немного сбивает меня с толку.Он спрашивает:

Правда ли, что это атом?
атом 1

1 (цитата атома) или 'атом

Меня смущает ссылка на сноску.Они спрашивают, является ли атом атомом, но потом почему-то говорят, что атом действительно (цитирует атом) или 'атом ?Я просто не понимаю.

Ответы [ 2 ]

0 голосов
/ 16 декабря 2018

Cf.следующее взаимодействие в CLISP REPL:

[1]> 'atom
ATOM

ATOM - это сущность, на которую ссылается текст;'atom - это то, на что ссылается сноска.

Обработка указанных данных является одним из слабых мест синтаксиса Lisp.Постоянно возникает путаница, подразумевается ли то, что мы видим, как результат оценки (ATOM) или кода ('atom).В конце концов, код - это данные в Лиспе, поэтому он стирает различие, когда мы хотим, чтобы оно было.

0 голосов
/ 16 декабря 2018

Здесь происходит то, что Фридман старался не увязывать читателя с техническими особенностями макроса читателя цитат, поэтому он привел примеры, которые были очень простыми, но на самом деле не работали, когда набирались как есть в REPL,В какой-то момент кто-то подумал, что он должен предоставить рабочий код, но он не хотел складывать исходный текст, поэтому он добавил код в качестве сноски.

В предисловии говорится:

Кроме того, вам может потребоваться слегка изменить программы.Как правило, материал требует всего несколько изменений.Предложения о том, как опробовать программы в книге, приводятся во фраменотах.Фрагменты, начинающиеся с "S:", относятся к схеме, а "L:" - к Common Lisp.

Атом просто означает все, что не является списком.Работая над упражнениями, вы должны быть в состоянии проверить элемент списка, чтобы увидеть, является ли он другим списком.Они вводят термин для вещи не из списка.

Также имейте в виду, что цитирование обрабатывается читателем, процесс чтения и оценки выражения использует кавычку, поэтому:

(quote atom) 

оценивается как

atom
...