Racketで関数を記述しているときに、記号の前に1つではなく2つの一重引用符を誤って入れてしまいました。つまり、誤って'' aを記述し、ネストされた引用符の動作が奇妙に見えることを発見しました。私はDrRacketを使用しており、これをRacketlangとR5RSlangの両方でテストしました。
(write (pair? (quote (quote a))))
プリント:#t。
(write (car (quote (quote a))))
プリント:引用
だが
(write (quote (quote a)))
と
(write '(quote a)))
両方の印刷:'a
誰かがScheme(およびRacket)で関数ペアを使用する理由を教えてもらえますか?(quote(quote a)))を2つの要素quoteとaのペアとして解釈しますが、関数writeは(quote a)の代わりに'aを出力します。