我知道,例如在repl 'a
中输入时,它会输出a
而不对其进行评估,在我的情况下,它会在Chicken-scheme中花费到(##core#quote a)
。报价是否忽略了自我评估标识符?
我知道数字和字符串是特殊的,它们是自我评估的符号。我想那个是因为这个原因,quote
似乎对他们没有任何影响。
例如:
(+ '1 '2 '3)
> 6
(+ (quote 1) (quote 2) (quote 3))
> 6
(string-append '"hello " '"world")
>"hello world"
但这样做以下
''1
(quote 1) => (#core#quote '1) => (#core#quote (#core#quote 1))
如果我们这样做:
(car ''a)
> quote
这证实了我因子评分。然后,如果我们做了以下,我们应该找到1预期。
(cadr ''1)
> 1
我说得对不对,所列的自我评价标识在评估时间被忽略?因为如果我这样做
(define a '1)
a
它不打印'1
但1
这样做很有意义,因为我们只有列表,所以在应用参数之前,我们总是可以检查列表中的第一个符号。在引用的情况下,我们只需返回数字,如果我们有一个数字,我们只是返回数字,但如果我们有一个引用的数字,我们只会返回带有引用数字的列表。 –