Skip to content

eczn/my-sicp-answers

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

74 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MY SICP ANSWERS

SICP 全称计算机程序的构造和解释,书上主要介绍了程序如何构造,以及程序是如何运行的,全书分 5 章,各章有不同的主题。

我的 SICP 习题册, 有些难的可能还没写出来 ^ ^ ,还要再推敲推敲, 本册子也可能随时弃坑。。。

刷题 Checklist

  1. 偏数学的习题可以试着解一下,实在弄不来就先跳过(数学差,我恨)
  2. 尽量独立得出结果,得出结果后我会去 https://sicp.readthedocs.io/en/latest/index.html 对一下答案看看是否一致 (目前发现几处地方我写的比较简洁 233)
  3. 欢迎交流 ♂ 学习

使用说明

We no longer support OS/2, DOS, or Windows.

此外,MIT/Scheme 目前不再支持 windows 了,在这里我用 racket 的 sicp 包来写书上的习题。关于 racket/sicp 可以参考:https://docs.racket-lang.org/sicp-manual/index.html

安装好 Racket 以及 sicp 包之后,还得设置一下系统 path 以确保命令行工具的使用。

全部都搞好以后可以用命令行工具运行本仓库的 1 + 1 例子:

$ racket ./1+1.rkt

目录

第 1 章 构造过程抽象 (共 33 题)

习题 1.1, 习题 1.2, 习题 1.3, 习题 1.4, 习题 1.5

习题 1.16, 习题 1.17, 习题 1.18, 习题 1.19

习题 1.22, 习题 1.23, 习题 1.24, 1-22 ~ 1-24 中关于时间复杂度的思考, 习题 1.25, 习题 1.26

习题 1.29, 习题 1.30, 习题 1.31, 习题 1.32, 习题 1.33

习题 1.34

习题 1.35, 习题 1.36, 习题 1.37, 习题 1.38, 习题 1.39

习题 1.40, 习题 1.41, 习题 1.42, 习题 1.43, 习题 1.44, 习题 1.45, 习题 1.46

第 2 章 构造数据抽象 (共 53 题)

习题 2.1

习题 2.2, 习题 2.3

习题 2.4, 习题 2.5, 习题 2.6, 对 Church Number 的定义的思考

习题 2.7, 习题 2.8, 习题 2.9, 习题 2.10, 习题 2.11, 习题 2.12, 习题 2.13, 习题 2.15, 习题 2.16 (警告:这个问题非常难)

习题 2.17, 习题 2.18, 习题 2.19, 习题 2.20, 习题 2.21, 习题 2.22, 习题 2.23

习题 2.24, 习题 2.25, 习题 2.26, 习题 2.27, 习题 2.28, 习题 2.29, 习题 2.30, 习题 2.31, 习题 2.32

习题 2.33, 习题 2.34, 习题 2.35, 习题 2.36, 习题 2.37, 习题 2.38, 习题 2.39, 习题 2.40, 习题 2.41, 习题 2.42

习题 2.53, 习题 2.54, 习题 2.55

2.3.2 符号求导, 习题 2.56, 习题 2.57, 习题 2.58

2.3.3 实例:集合的表示, 习题 2.59, 习题 2.60, 习题 2.61

第 3 章 模块化、对象和状态 (共 23 题)

习题 3.1, 习题 3.2, 习题 3.3, 习题 3.4

习题 3.5, 习题 3.6

习题 3.9

习题 3.12, 习题 3.13, 习题 3.14, 习题 3.15, 习题 3.16, 习题 3.17, 习题 3.18, 习题 3.19

习题 3.21, 习题 3.22, 习题 3.23

习题 3.28, 习题 3.29, 习题 3.30, 习题 3.31, 习题 3.32

make README.md

$ npm run make 

如何参与编辑

如果你觉得你习题 x.xx 解法更好,想提 PR,请在习题 x.xx 所在的 README.md 中的 # 习题 x.xx 段落之后之后写:

... 其他内容

# 习题 x.xx
原本的解法

# 习题 x.xx @your_name
你的解法

修改完之后,请运行:

$ npm i 
$ npm run make 

当然,也可以直接提 issues。

License

MIT

About

☯️ SICP 书上的练习题

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published