在 Racket 中编写函数时,我不小心在符号前面放了两个单引号,而不是一个。即我不小心写了''a 并发现了一些看起来很奇怪的嵌套引号行为。我正在使用 DrRacket 并使用 Racket lang 和 R5RS lang 对此进行了测试。
(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) 。