在 SBCL REPL 中,为什么输入的'(nil . nil)
计算结果为(nil)
而不仅仅是nil
?
如果空列表是 cons 单元的两个“元素”所在的列表nil
,为什么它们不一样?
我对此的假设是 SBCL 做出以下评估:
(car '()) => nil
(cdr '()) => nil
(car '(nil . nil)) => nil
(cdr '(nil . nil)) => nil
但是:
'() => nil
'(nil . nil) => (nil)
在 SBCL REPL 中,为什么输入的'(nil . nil)
计算结果为(nil)
而不仅仅是nil
?
如果空列表是 cons 单元的两个“元素”所在的列表nil
,为什么它们不一样?
我对此的假设是 SBCL 做出以下评估:
(car '()) => nil
(cdr '()) => nil
(car '(nil . nil)) => nil
(cdr '(nil . nil)) => nil
但是:
'() => nil
'(nil . nil) => (nil)