如果读完了《the little schemer》,就算是会写递归程序。接下来可以看看c语言,体会一下不一样的编程风格。其实大部分大学教的都是c语言,所以就当是复习一下。
想要更了解的话,可以看看数据结构。我比较推荐清华大学邓俊辉老师的数据结构,浙江大学的数据结构也很好。其实看看离散数学也行。
内存中数据的存储是没有链表、树、图的。这些内容就是抽象出来的。
同理,我们也不知道c语言里的数组、结构体是如何实现的。
在之前我们看到scheme的cons、car、cdr,其实我们只是知道这些函数的作用,到底是怎么实现cons、car、cdr的呢?
我们也不知道。
可以用函数来实现cons、car、cdr(这里使用了高阶函数):
(
运行的结果是这样的:
这就是很简单的数据抽象。
代码上传到github:
https://github.com/wx-jiang/zhihu-articles-code/blob/master/4.scmgithub.com