/sicp_exercise

Primary LanguageJupyter NotebookMIT LicenseMIT

Execise solutions for SICP (Structure and Interpretation of Computer Programs)

This a reposity for exccise solutions for SICP.

It is written in Chinese because of my limited English skills. I will try to write an English version if I have more time to improve my English skills and translate them.

If you want to run the code without reading all the Chinese explanation, you can try to run these notebooks in jupyter with Calysto Scheme installed.

Follow the following instructions to install Calysto Scheme

pip3 install --upgrade calysto-scheme --user
python3 -m calysto_scheme install --user

For more information about Calysto Scheme, please refer to the github link of Calysto Scheme:

https://github.com/Calysto/calysto_scheme

Then you can clone this reposity into your jupyter workspace and try to run the code.

SICP (计算机程序的构造和解析) 解题集

本github库的内容是 SICP (计算机程序的构造和解析) 解题集。

因为自己喜欢编程,所以涉猎了不同的编程语言,一直觉得在**缺少函数式编程的教材和资料,于是很多年前动了这个念头写SICP的解题集。

之前写了两章左右的内容发表在国内的博客上,也不求太高的阅读量,就是希望有人在找SICP习题的资料时有多一份参考。

6年前加入了一个云计算公司,各方面各种忙,学习云服务,搞大数据,机器学习,现在还在学量子计算,于是SICP解题集这个事情就耽误了,一直放在那里,很多样例代码都是写好的,想分享的内容也都有构思,不过就是时间不允许,一直没有去整理。

这段时间看到这些资料放在硬盘上一直吃灰,于是想到整理一下放github上。

多年以后回过头看自己当时写的内容,发现当时自己真的是一个数学盲,这几年有一直在补习数学知识,现在算是个半盲吧,不过当年写下的文字就还是留下来了没有做太多修改,现在整理的时候有想到一些想分享的,就直接插进去一段内容,基本保证上下文通顺就好了。所以读者阅读的时候可能会在有些地方发现行文风格不太一致。

另外一个促使我整理这份资料的是我发现了可以在jupyter notebook环境里运行mit-scheme的kernel: Calysto Sheme。能在友好的jupyter notebook里运行Lisp程序还是很令人愉悦的,整理效率也高很多。

内容格式上基本上是一道题一份jupyter notebook文件,按 sicp-章节号-题目号 命名。

为了阅读方便,做了目录,大家可以直接点进去阅读

运行

本库的代码和相关讲解都写成了jupyter notebook,要阅读和运行样例代码,请安装jupyter notebook环境。关于jupyter notebook环境的安装,请参考各大网站,这里就不赘述了。

另外,为了支持Calysto Scheme,需要进行额外安装,安装命令如下:

pip3 install --upgrade calysto-scheme --user
python3 -m calysto_scheme install --user

更多信息请参考以下链接: https://github.com/Calysto/calysto_scheme