📖 SICP 读书笔记,习题解答
Scheme GCC Machine Description
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.

README.md

SICP

SICP,一本讲解编程真谛的经典教材。之前上大学期间,陆陆续续看了2遍这本书,无奈都没坚持到底。第一次只看完第一章,第二次只看完前三章。很多习题也没做。

这,是第三次进攻。这个 repo 会记录我在看 SICP 时的习题代码与一些自己的笔记与想法,这么做一方面是给自己查漏补缺,另一方面也为希望对今后阅读 SICP 的人有些许帮助。

为了方便检索,我使用 gitbook 制作了《SICP 读书笔记》电子书,供大家参考。

Why SICP

目标

2016年1月1号之前啃完所有章节与习题!! 失败告终。只完成前三章。

新的一年继续读书计划2016年6月30号前,完成剩下的第四章、第五章。 完成

建议

完完整整看完一本书是一件困难的事,本书更是如此。

这本书的很多内容、习题需要仔细揣摩才能领略其精髓,所以看这本书一定不要心急。 其次,在阅读时,请务必关闭手机上一些社交工具,并预留出至少 1 个小时的完整时间来看,否则我不认为你真的能有所收获。

学习是件很苦的事,大多数人都是三分钟热度,所以如果你觉得看这本书让你很烦躁,不妨出去运动一下,或听一会音乐🎵,第二天接着来。坚持下来,不要放弃,更不要失去对探索编程真谛的好奇心。

以上与所有 SICPer 共勉。

环境准备

工欲善其事必先利其器。下面说下我Mac上的scheme环境:

  • Mac 环境
  • mit-scheme 9.2,我的Mac版本是10.10.2,按照上这个官方scheme后点击图标,闪退,不清楚为什么,我这里直接把MIT:GNU Scheme.app/Contents下的Resources文件夹拷贝出来,并把它加入的PATH中,这样就能够运行了。 mit-scheme screencast
  • 这里安装好的scheme在交互式环境下无法使用方向键,可以通过安装rlwrap解决(brew install rlwrap)之后,用rlwrap mit-scheme启动就可以了。
  • 英文版epub+中文版实体书,计算机的书最好还是看英文原版,我这里买了中文版的实体书,英文版的好贵!不过多看对epub格式支持很好,放手机上看很方便,而且多看支持划词翻译,写笔记,笔记同步Evernote等等,真是太方便了,推荐大家使用。手机屏幕还是太小了,而且很容易分心,Kindle Paperwhite才是真爱,值得拥有💖
  • mit-scheme直接从文件中读取代码并执行,例如有个文件名为fib.scm的文件,在scheme交互式环境下通过(load "fib.scm")命令就能够执行fib.scm中的代码了。
  • 2.2.4小节用到的图形语言采用Racket实现,这是它的文档
  • 2.4.3小节putget的实现,参考/exercises/02/lib/hash_table.scm

我的初始化环境就是这样了,后面如果有改变我会修改这里的说明。

辅助资料

QQ 群

欢迎在读或打算读 SICP 的朋友加入 SICP 读书 QQ 群:119845407,让我们一起探索编程的奥妙。

sicp_qq

手机 QQ 可直接扫码加入。

Timeline

  • 2015-5-17 第三次开启SICP之旅
  • 2015-7-12 结束第一章,构造过程抽象。我的总结
  • 2015-9-20 结束第二章,构造数据抽象。我的总结
  • 2015-12-26 结束第三章,模块化、对象和状态。我的总结
  • 2016-04-23 结束第四章,元语言抽象。我的总结
  • 2016-05-21 结束第五章,寄存器机器里的计算。我的总结

License