При написании функции в Racket я случайно поставил перед символом две одинарные кавычки вместо одной. т. е. я случайно написал ''a и обнаружил странное поведение вложенных кавычек. Я использую DrRacket и тестировал его как на языке Racket, так и на языке R5RS.
(write (pair? (quote (quote a))))
печатает: #t .
(write (car (quote (quote a))))
принты: цитата
Но
(write (quote (quote a)))
и
(write '(quote a)))
Оба печатают: 'a
Может кто-нибудь сказать мне, почему в Scheme (и Racket) функция пары? интерпретирует (quote (quote a))) как пару из двух элементов quote и a , но функция write выводит 'a вместо (quote a) .