L1 = ((A B) C D)
L2 = ((E) F)
我应该评估的表达方式是:
(CONS (CAR L1) (LIST (CDR L2)))
我已将其描述如下:
(CONS (CAR L1) (LIST (CDR L2)))
(CONS ((A B)) (LIST ((F))))
(CONS ((A B)) (((F))))
((((A B)) (((F)))))
或者(我不确定这是否更具可读性,但我已经按太空了太多时间才能退出):
(
(
(
(A B)
)
(
(
(F)
)
)
)
)
这是对的吗?看起来似乎有太多的括号,但也许我只是偏执狂?
我找到的所有例子都没有这样的嵌套列表,所以我真的不确定我是否做得对。
由于
答案 0 :(得分:3)
CL-USER 13 > (step (CONS (CAR L1) (LIST (CDR L2))))
(CONS (CAR L1) (LIST (CDR L2))) -> :s
(CAR L1) -> :s
L1 -> :s
((A B) C D)
(A B)
(LIST (CDR L2)) -> :s
(CDR L2) -> :s
L2 -> :s
((E) F)
(F)
((F))
((A B) (F))
答案 1 :(得分:2)
这是不正确的。让我们再试一次。
(car '((a b) c d))
是基准(a b)
。
(cdr '((e) f))
(与(cdr '((e) . (f)))
相同)是基准(f)
,这意味着(list (cdr '((e) f)))
是基准((f))
。
因此,(cons (car l1) (list (cdr l2)))
与(cons '(a b) '((f)))
相同,((a b) . ((f)))
是基准((a b) (f))
,与{{1}}相同。