lisp – “The Little Schemer”中利弊的结果

在页178,有一个问题:什么是值

(cons rep-car
    (cons (cons rep-quote
        (cons
            (cons rep-a
                (cons rep-b
                    (cons rep-c
                        (quote ()))))
            (quote ())))
    (quote ())))

哪里

rep-car is car
rep-quote is quote
rep-a is a
rep-b is b
rep-c is c

书中的答案是

(car (quote (a b c)))

但我认为答案应该是

(car ((quote ((a b c)))))

为什么我错了?

最佳答案 不,书中的答案是对的.请注意,表达式有3次出现(quote()),以创建3个列表.然后它将各种原子汇集到列表中.你的答案包含5个列表,而不是3个.

(quote())只返回一个空列表. (cons 1(quote()))将一个项添加到空列表中以产生(1).

点赞