Какие исключения могут возникнуть при проверке атомов функцией EQ? - Lisp

Формулировка задачи:

(eq x y) is true if and only if x and y are the same identical object. (Implementationally, x and y are usually eq if and only if they address the same identical memory location.)
что значит "обычно"? Какие исключения, и зачем так запутали? Например, почему (eq '(a . b) '(a . b)) might be true or false. какая тут логика? Или: (eq "Foo" "Foo") might be true or false. Обычно такая запись в языках трактуется как 2 ссылки на одну и ту же память. Почему должно быть иначе? И как интерпретатор может это различать, по каким признакам для него одно "Foo" отличается от другого "Foo"? Добавлено через 7 минут UPD кстати, фраза "usually eq if and only if" звучит забавно, привет из желтого дома

Код к задаче: «Какие исключения могут возникнуть при проверке атомов функцией EQ? - Lisp»

textual
(eq '(a . b) '(a . b)) might be true or false.

10   голосов, оценка 3.700 из 5


СОХРАНИТЬ ССЫЛКУ