SICP练习记录】的更多相关文章

-------------求一个数的平方根(牛顿法平方根求解法): (define (sqrt-iter guess x) (if (good-enough? guess x) guess (sqrt-iter (improve guess x) x))) (define (improve guess x) (average guess (/ x guess))) (define (average x y) (/ (+ x y) 2)) (define (good-enough? guess x…
摘要:软件本身不是目的,人类的需求才是目的,而软件只是达到目的的手段. 软件的本质在于控制复杂性,这个复杂性并非来自于计算机,也并非来自于现实世界,而是来自于人类的思维和知识体系. 软件被使用的广泛性,在于它所满足的人类需求的广泛性. 什么是软件? 从一个简单的例子说起,比如我想计算两个数的和,于是写下这样的python代码 print a + b 但是,这段代码是我的最终目的吗?显然不是,我需要把它在计算机上实际运行,并赋予a和b实际的数值.也许我是在水果,买了5块钱的苹果和10块钱的香蕉,然…
SICP 习题 1.14要求计算出过程count-change的增长阶.count-change是书中1.2.2节讲解的用于计算零钱找换方案的过程. 要解答习题1.14,首先你需要理解count-change的工作方式,要理解count-change的工作方式,最好是自己去实现一遍count-change. 为了避免自己直接抄书中的代码,我决定自己实现一遍用来找换人民币的的“count-change”.事实上,我在看完并理解count-change的代码后,当我去实现人民币版的“count-ch…
SICP 习题 1.9 开始针对“迭代计算过程”和“递归计算过程”,有关迭代计算过程和递归计算过程的内容在书中的1.2.1节有详细讨论,要完成习题1.9,必须完全吃透1.2.1节的内容,不然的话,即使从网上找来答案看也不能理解其中的真谛. 书中1.2.1节是通过阶乘作为样例来讲解的,可能是因为作者们都是一些天才,所以他们都很喜欢使用数学样例,作为凡人的我们要理解他们在讲什么就需要先理解数学,真的是比较痛苦. 当然,阶乘还算不难啦,看完样例后要理解“迭代计算过程”和“递归计算过程”才是比较麻烦的事…
SICP 2.12 要求我们定义一个构造函数make-center-percent,它接收两个參数,分别代表中心点和一个误差百分比.我们须要通过这个构造函数产生一个区间.此外还须要定义一个选择函数percent,用来获取指定区间的误差百分比. 还有就是须要实现一个center函数用于获取区间的中间点. 这里的关键就是要我们明确一个复合数据类型可能会有不同的表现形式,比方这里的区间能够用起点和终点表示,也能够使用中心点和误差表示. 从内部实现来讲,能够简单的将两种表现形式相关的数据都保存起来,比方…
x1c 2017 的 i5 7200U 8G ram 的丐版.换了1T SSD.其实一般使用没啥问题. 1 外出携带的轻便性太满意(mac13寸相比之下都太重了): 2 coding时候的安静性,比原来的P150em准系统好太多. 用了一段这个,再开准系统,确实觉得风扇噪音烦躁,忍不了. 但现在是win10+虚拟机mint18.在coding的时候,还是稍微有点不爽.想换成linux+win虚拟机.但是怕反复来回折腾,还是和开发系统一样,把愿景和业务现状认真描述一下: 痛点:希望开发时能运行快些…
SICP 习题 1.35要求我们证明黄金切割率φ 是变换函数 x => 1+ 1/x 的不动点,然后利用这一事实通过过程fixed-point 计算出φ的值. 首先是有关函数的不动点,这个概念须要理解清晰,后面好几道题都是环绕函数不动点展开的.作者在这里设计这些习题的原因也是希望读者能够关注函数不动点. 事实上有关不动点这个东西我在做习题"1.8"的时候就认为好奇了.为什么"(x+x/y)/2"会不断逼近x的平方根呢?又为什么"(x/y2+2y)/3…
SICP CONCLUSION 让我们举起杯,祝福那些将他们的思想镶嵌在重重括号之间的Lisp程序员 ! 祝我能够突破层层代码,找到住在里计算机的神灵! 目录 1. 构造过程抽象 2. 构造数据抽象 3. 模块化.对象和状态 4. 元语言抽象 5. 寄存器机器里的计算 Chapter 3 模块化.对象和状态 练习答案 用变动数据做模拟 当引入赋值后就可以在之前为那些复合数据对象提出改变函数 变动的表结构 针对cons的基本改变函数,set-car!和set-cdr!函数 共享和相等 ;: (de…
在使用FIS3搭建项目的时候,遇到了一些问题,这里记录下. 这里是发布搭建代码: // 代码发布时 fis.media('qa') .match('*.{js,css,png}', { useHash: true }) // 添加指纹 .match('*.js', { optimizer: fis.plugin('uglify-js') }) // js压缩 .match('*.css', { optimizer: fis.plugin('clean-css') }) // css压缩 .mat…
午休完上班后,同事说测试站点访问接口出现400 Bad Request  Request Header Or Cookie Too Large提示,心想还好是测试服务器出现问题,影响不大,不过也赶紧上服务器进行测试查看,打开nginx与ugwsi日志与配置,发现后端服务日志记录正常,而测试站点的访问日志有7百多M(才运行两三天没几个访问,几M的话才是正常现象),在浏览器里直接访问后端服务接口也正常没有问题(我们的服务器软件架构是微服务架构,将很多模块分拆后分别部署,前端是一个纯HTML站点,通过…