SICP 习题 2.24 是列表的巩固题,让我们更清晰的理解列表。
题目要求我们求如下表达式的值:
(list 1 (list 2 (list 3 4)))
因为我是一个程序员,这种事我不会自己求值的,我会让计算机完成。。。。
在Scheme环境里运行以上表达式得到的结果是:
(1 (2 (3 4)))
这个结果并不意外,相对有经验的程序员大概可以猜出来。
题目后来还要求画一个盒子指针结构将以上数据解释成一棵树。
手上没有方便的画图工具,于是用keynote直接画了一个盒子指针图,发现画起来还挺方便的。
注意,理论上讲,列表里有几个)号,图中就应该有几个nil的符号,就是带斜杠的盒子。
时间: 2024-11-08 15:04:22