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)
)
)
)
)
这是对的吗?只是括号似乎太多了,但也许我只是偏执狂?
我能找到的示例都没有这样的嵌套列表,所以我真的不确定我做得是否正确。
谢谢
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))
不正确的。让我们再试一次。
(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))
相同。