我试图了解汽车和cdr的多个调用是如何协同工作的.例如,以下示例似乎很简单:
(car (cdr '(car (cdr (1 2 3))))
Run Code Online (Sandbox Code Playgroud)
我的DrRacket编译器'(cdr (1 2 3))在运行时输出,但我不知道如何.不应该先取(1 2 3)cdr吗?前两辆车和cdr怎么样?
不,引用运算符将引用其后的所有表单和子表单.只执行列表的第一辆汽车和cdr; 首先(cdr '(car (cdr (1 2 3)))- > '((cdr (1 2 3)),然后(car '((cdr (1 2 3)))- > '(cdr (1 2 3)).