gcd(206, 40) -> gcd(40, 6) -> gcd(6, 4) -> gcd(4,2)->gcd(2,0) 总共4次递归调用,每次递归做一次取余数运算。
他的推荐词说: SICP是一本无论如何都应该去仔细阅读的书。 其实,在2013年,我还在ThoughtWorks时,就曾经和同事一起整理了一份ThoughtWorks读书雷达,在编码实践象限中推荐了SICP。 有人不无夸张但相当在理地说:自SICP以降,无并发的编程没有任何新鲜问题;如果你觉得自己有了新发现,要么是SICP已经写过只是你不知道,要么是你想错了。 这一段是熊节的推荐。 ——于是,我买了中文版的SICP,却从来没有翻开它;我在GitBook下载了LFE(Lisp Flavored Erlang)版本的SICP,却从来不曾点开它。我将它藏起来了,貌似珍藏,实则逃避。 有多少会熟练编写C++、Java、C#、Scala、JavaScript、Ruby、Python语言的人,又读过SICP呢?
昨天晚上进行了第一次直播,效果不是很好,一方面可能是准备不足,ppt 内容上下文衔接不够;另一方面是没有定位好受众人群,对于没有看过 SICP 的同学来说可能不知道我再说什么,离我的初衷相差甚远 不过我觉得也还行
大家好,又见面了,我是全栈君 SICP 2.15 是接着 题目 2.14 的, 题目 2.14中提到了Alyssa设计的区间计算模块在并联电阻计算时会出现故障,这个问题是Lem发现的。
本章节将介绍有关计算过程(computational process)的知识。计算过程是存在于计算机里的一类抽象事物。在其演化过程中,这些过程会去操作一些被称为数据(data)的抽象事物。而人们则会创造程序(programs)来指导这些过程。在正常工作的计算机里,一个计算过程将精密而准确地执行相应的程序。
自 1984 年出版以及 1996 年的第二版以来,SICP 已被世界各地的大学和学院采用为教材,包括新加坡国立大学(NUS),该校于 1997 年引入了基于 SICP 的入门课程 CS1101S。 将 SICP 改编为 JavaScript 对将第二版 SICP 改编为 JavaScript(SICP JS)的工作始于 2008 年的 NUS,CS1101S 于 2012 年转换为 JavaScript 使用 SICP JS 的资源 SICP JS 的 MIT Press 网页链接到了这本书的用户支持。 如果你已经了解原始的 SICP,那么你可能会喜欢看到熟悉的思想以新的形式呈现,并且可能会欣赏书的网页上提供的在线比较版本,其中 SICP JS 和 SICP 可以并排查看。 SICP JS 是一个软件项目,除了书籍项目。我们在 2008 年从原作者那里获得了书籍来源。早期的 SICP JS 工具链是由刘航开发的,并由冯飘飘进行了改进。
# err.py s = '0' n = int(s) print 10 / n $ python -m pdb err.py > /Users/michael/Github/sicp/err.py(2 -> s = '0' 3 n = int(s) 4 print 10 / n [EOF] 输入命令n可以单步执行代码: (Pdb) n >/Users/michael/Github/sicp /err.py(3)<module>() -> n = int(s) (Pdb) n >/Users/michael/Github/sicp/err.py(4)<module>() -> print 10 输入命令q结束调试,退出程序: (Pdb) n ZeroDivisionError: 'integer division ormodulo by zero' >/Users/michael/Github/sicp 运行代码,程序会自动在pdb.set_trace()暂停并进入pdb调试环境,可以用命令p查看变量,或者用命令c继续运行: $ python err.py >/Users/michael/Github/sicp
这个题目很大,而我只想谈谈自己对于《SICP》的一点思考。 《SICP》的全名是《Structure and Interpretation of Computer Programs》,中文译名《计算机程序的构造与解释》。 《SICP》里有很多示例代码,我一开始老看着别扭,今天我对这个别扭的原因进行了深入的思考。 但是在《SICP》中并非如此,由于Scheme支持函数式编程,抽象粒度更细(以函数为单位,而不是对象或者类),所以作者是站在一个很高的抽象层面上看待问题,理清问题的脉络,很快地给出一个原型,这个原型已经解决了问题 《SICP》的精髓在于合理的抽象和管理复杂度,我觉得这也是编程和软件工程的精髓。
electrical-engineering-and-computer-science/6-001-structure-and-interpretation-of-computer-programs-spring-2005/ 译者还创建了一个GitHub提供了一系列的教辅资料,包括SICP github链接: https://github.com/DeathKing/Learning-SICP 如果你在学习中存在问题,译者还专门构建了答疑版块,你可以在板块中提出你的疑惑。 最后,文摘菌再次给出GitHub链接: https://github.com/DeathKing/Learning-SICP 【今日机器学习概念】 Have a Great Definition
如果有人对SICP感兴趣,那么就组成另一个“SICP讨论班”,等等。 3 终于,搞事开始了。在各个群里面发了广告,新建了一个群。加群的有不少,但大概多半是看看热闹玩一玩的。 最终票选出4本书:CSAPP、SICP、Intel汇编语言程序设计、C语言。前两本书高年级的票数比较多,讨论班就安排在一区;后两本书大一的票数比较多,讨论班就安排在了二区。 我没看过SICP,也参加了SICP的讨论班,准备尝试学一学。 CSAPP和SICP的讨论班的时间是连着的,因为还要给他们开咖啡店的门,所以索性我就两个讨论班都参加一下——CSAPP只负责旁听,SICP参与分享。 选了参加SICP讨论班的同学,有的甚至不清楚SICP说了个啥——那天SICP讨论班算上我只有3个人参加,一个同学问我,“学这个语言有什么用”?说实话我愣了一下。
Show Notes • Structure and Interpretation of Computer Programs (SICP)[1] • MIT/GNU Scheme[2] • 主播最早用的配置 RSS[11] • 喜马拉雅[12] • Apple Podcasts[13] 引用链接 [1] Structure and Interpretation of Computer Programs (SICP ): https://mitpress.mit.edu/sites/default/files/sicp/index.html [2] MIT/GNU Scheme: https://www.gnu.org
胶囊结构的自供电心内起搏器(SICP),用于基于纳米发电机技术从心脏运动中收集生物力学能量。 该装置可以通过输送导管通过静脉途径放置在右心室中。 SICP 集成了能量收集单元 (EHU) 和电源管理单元 (PMU) 以及起搏器模块 (PM)。 SICP 可以通过 EHU 为其 PMU 充电。 SICP 可以有效地转换生物机械能转化为电能体内能量提供稳定的动力。用于猪模型中的心跳起搏时间超过三周。 电容器的电压在 9000 秒内从 0 V 充电到 3 V,与体内 SICP 的电输出相同。 植入前后的心电图和血压信号,没啥影响 随着心脏周期性的生理收缩和舒张,小球在SICP中自由运动,电信号表现出一定的波动性。推测电信号的波动也可能受到血流的影响。
Youtube: Mike Zamansky (Hunter College professor)[8] • B站:金色飞贼小米[9] •主播的推荐 • vc-msg[10] 显示当前行的 git 信息 • SICP 金色飞贼小米: https://space.bilibili.com/314984514 [10] vc-msg: https://github.com/redguardtoo/vc-msg [11] SICP : https://github.com/jiacai2050/sicp [12] 530146104: https://jq.qq.com/?
我们建议至少学完 SICP 的前三章,并完成配套的习题。如果需要额外的练习,可以去解决一些小的程序设计问题,比如 exercism。 中文翻译新增: 关于 SICP 国内视频观看地址 MIT 的免费视频课程(中英字幕) Brian Harvey 开设的 SICP 课程(英文字幕) Scheme 学习的相关资源参见:https://github.com 课程,以及配套的书籍 《Composing Programs》,这本书 “继承自 SICP” 但使用 Python 讲解。 如果你觉得 SICP 过于难,试试 《Composing Programs》。 为什么你们还在推荐 SICP? 先尝试读一下,有些人觉得 SICP 让人神魂颠倒,这在其他书很少见。如果你不喜欢,你可以尝试其他的东西,也许以后再回到 SICP。 为什么你们还在推荐龙书?
前几天在公众号调查了下“对自己编程影响最大的一本书是什么”,答案基本不出我所预料:SICP、HTDP、 K & R C、Hackers and Painters 占据上风。 我曾经花了好几年时间去读 SICP,大概读了三四遍,仔细钻研里面的每一道习题,收获也颇丰,对各种语言现象(递归、CPS、惰性求值、非确定性计算与流处理)、编译器、可计算行问题等有了深刻认识。
Emacs • 用 Emacs Lisp 开发的微信小程序:redraiment/wechat.el[4] • 推荐 • Emacs Keyboard Macros[5] • 《计算机程序的构造和解释》(SICP Macros: http://www.gnu.org/software/emacs/manual/html_node/emacs/Keyboard-Macros.html [6] 《计算机程序的构造和解释》(SICP
视频则推荐伯克利大学 Brian Harvey 的 SICP 课程。建议至少学完 SICP 的前三章,并把练习题做完。 如果你觉得 SICP 的课程太难,可以选择 How to Design Programs。 传送门: https://mitpress.mit.edu/sites/default/files/sicp/full-text/book/book.html https://archive.org/details
分五章:构造过程抽象,构造数据抽象,模块化、对象和状态(涉及并发),源语言抽象,寄存器机器里的计算(编译器如何工作) 环境 OS X下使用IDE DrRacket及其语法插件#PLaneT neil sicp.plt 在文件头使用 #lang planet neil/sicp 声明语言类型 ? list1> <list2>) ; Map (map <list> <process>) (reduce <list> <process>) ---- http://mitpress.mit.edu/sicp
对于没有计算机科学基础知识的程序员或初学者来说 一上来就看龙书 虎书是行不通的 全是理论知识 看得想睡觉 我还试过看网易云大学计算机专业的编译原理课程 也是看得一头雾水 看到80多讲就看不下去了 另外 SICP (计算机程序的构造和解释)这本很多人推荐的书其实并不适合初学者 前3章和后面几章难度差别有点大 可能是自己水平不行 看SICP解释器和编译器那两章也是看不懂 虽然强迫自己看完 但是最后还是不懂编译原理到底是怎么回事
首先来介绍一下这门课,CS61A是一门SICP的入门理论课,非常扎实。 SICP是Structure and Interpretation of Computer Programs的缩写,翻译过来就是计算机程序的构造和解释。