使用Python学习SICP需要哪些材料?

6

我想尝试使用Python学习SICP。

有没有人可以指出一些教授计算机程序的结构和解释(SICP)的材料(视频、文章等),并使用 Python 进行讲解。

目前正在学习Abelson、Sussman和Sussman的SICP视频。


4
我建议学习LISP。 :) - BobbyShaftoe
5个回答

10
我认为这对你来说会很棒,CS61A SICP 是由伯克利开发的Python编程课程。
在Github上可以找到sicp-python的代码。

你的 GitHub 链接都失效了 :( - Carl Smith
我认为第一个是 https://github.com/dongchongyubing/sicp-python,对不起第二个。 - Ahmad Ajmi

9
直接将SICP翻译成Python是没有意义的——Scheme和Python有很大不同。但是,Python有一些类似的书籍。首先想到的是《像计算机科学家一样思考》。您可以在此处找到更多关于可用材料的信息: http://www.greenteapress.com/thinkpython/thinkCSpy/

1
我认为SICP是关于编程而不是Scheme的,我知道Scheme被用来传达理论。 - user427165
1
SICP 真正关注的是函数式编程,而 Python 是一种命令式面向对象的语言。设计程序的方式绝对不同。 - bruno desthuilliers
1
实际上,Python 受到 Lisp 和函数式语言的很大影响(http://twit.tv/show/floss-weekly/11),并且它确实有很多工具来支持函数式编程(http://docs.python.org/dev/howto/functional.html)。 - mcepl
1
@mcepl:是的,Python拥有一流函数、(受限制的)闭包、(非常受限制的)lambda,并从Lisp和Haskell借鉴了几个习惯用法,但它仍然是一种基于语句的命令式语言,在Python中尝试进行适当的FP只会感到最多是沮丧。 - bruno desthuilliers

8

不要认为有一套完整的材料,这个是我所知道的最好的。

如果你想自己生成材料,我们中的一群人计划共同学习SICP,在这里。我知道至少有一个人将使用Haskell,所以你不会孤单地追求另一条路线。


在宣传自己的网站之前,先给codepoetics的帖子点个赞吧 :) - Scott Hoffman
如果你的网站回答了问题并为讨论增加了价值,那么宣传自己的网站是没有问题的。 - user427165
2
http://www.codepoetics.com/wiki/index.php?title=Topics:SICP_in_other_languages 网页无法访问。有人知道在哪里可以找到其他资源吗? - Mirzhan Irkegulov


2

虽然这是一个老问题,但我认为这对某些人可能很有用。

http://composingprograms.com/

这本教材以SICP的传统为基础,重点介绍抽象方法、编程范式和管理大型程序复杂性的技术。这些概念主要使用Python 3编程语言进行说明。
...
《组合程序》是由John DeNero撰写和维护的。这本教材最初是UC Berkeley的CS 61A课程讲义,基于Harold Abelson和Gerald Jay Sussman的《计算机程序的构造与解释》。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接