我正在读这本书:e.html
我被困在这个练习上了:
(car '((1 2 3) (4 5 6)))事情是,根据我的理解,我必须理解我们如何得到((12,3) (4,5,6)得到(car‘((12,3) (4,5,6)),因为car评估了第一个地址。
我试过几次,但无法得到确切的“字符串”(我甚至不知道如何调用它们):
(cons (cons 1 (cons 2 (cons 3 '()))) (cons 4 (cons 5 (cons 6 '())))) 给我
{{1 2 3} 4 5 6}
(cons (cons (cons 1 (cons 2 (cons 3 '()))) '()) (cons 4 (cons 5 (cons 6 '()))))给我
{{{1 2 3}} 4 5 6}
(cons (cons (cons 1 (cons 2 (cons 3 '()))) '()) (cons (cons 4 (cons 5 (cons 6 '()))) '()))给我
{{{1 2 3}} {4 5 6}}至少我得到了两个部分的支架..。
问题是,如果每次我打电话给car以获得第一个地址,我需要在脑海中列出结果,才能看到山的另一边,这对me...so来说似乎是一种非常困难的语言--我希望我错了。
发布于 2018-04-12 21:49:12
'((1 2 3) (4 5 6))是(cons (cons 1 (cons 2 (cons 3 '()))) (cons (cons 4 (cons 5 (cons 6 '()))) '()))
> (cons (cons 1 (cons 2 (cons 3 '()))) (cons (cons 4 (cons 5 (cons 6 '()))) '()))
'((1 2 3) (4 5 6))如果我们用符号替换内部列表,因为它们的值并不重要,那么我们可以得到:
(car '((1 2 3) (4 5 6)))
(car '(X Y))
(car (cons 'X (cons 'Y '())))通过还原(car (cons A B)) => A生成'X,所以结果是(cons 1 (cons 2 (cons 3 '())))还是'(1 2 3)
https://stackoverflow.com/questions/49806212
复制相似问题