sicp第1章】的更多相关文章

目录 SICP第三章题解 ex3-17 ex3-18 ex3-19 队列 ex3-21 ex3-22 ex3-24 ex3-25 3.4 并发:时间是一个本质问题 ex3-38 3.4.2 控制并发的机制 ex3-39 ex3-41 ex3-42 串行化.序列化 ex3-44 串行化的实现 ex3-47 死锁 3.5 流 ex3-50 序列加速器 SICP第三章题解 标签(空格分隔): SICP ex3-17 统计一个表结构中的序对个数 (define (count-pairs x) (coun…
牛顿迭代法求平方: (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) )) (define (square x) (* x x)) (define (good-enough? gu…
近来在重读SICP,以前读过一次,读了第一二章就没有坚持下去,时间一长就基本忘记了,脑海里什么都不剩,就隐约记得自己曾经读过一本很牛B的书. 这次读希望能够扎实一点,不管能读到哪里,希望可以理解一些东西,以后可以在日常工作中用到,所以开始一道一道地做题,强迫自己深入学习. 后来发现效果不错,于是产生了写解题总结的想法,可以和大家分享,同时加深自己的印象.因为是工作之余才有时间写总结,所以也不能确定更新时间,能写多少是多少吧. 前面几道题比较简答,所以就将1.1,1.2,1.3,1.4这四道题合在…
Implement pow(x, n). 有史以来做过最简单的一题,大概用5分钟ac,我采用fast exponential,这个在sicp的第一章就有描述.思想是:如果n是偶数的话,那么m^n = (m^(n/2))^2, 如果n是奇数,那么m^n = m*m^(n-1).这样一来是O(logn)的.需要特殊处理的是n是负数的情况,也很好办,如果指数是负数,那么最终结果会变成倒数. class Solution { public: double pow(double x, int n) { )…
默认作用域 前段时间学了下Lua,发现Lua的默认作用域和Python是相反的.Lua定义变量时默认变量的作用域是全局(global,这样说不是很准确,Lua在执行x = 1这样的语句时会从当前环境开始一层层往上查找x,只有在找不到x的情况下才定义全局变量)的,而Python定义变量时默认变量的作用域是局部(local)的(当前块).另外,Lua可以再定义变量时在变量前加上local关键字来定义局部变量,而Python没有类似的关键字,Python的变量只能定义在当前块中. 我们知道,全局变量是…
SICP  Structure And Interpretation Of Computer Programs 中文第2版 分两部分  S 和 I 第一章 构造过程抽象 1,程序设计的基本元素 2,过程与他们所产生的计算 3, 用高阶函数做抽象 第二章 构造数据抽象 第三章 模块化.对象和状态 第四章 元语言抽象 第五章 寄存器机器里的计算 (心智的活动,学习.1,组合  简单认识组 为一个符合认识由此产生复杂认识.2,对比  两个认识放在一起对比,得到有关于相互关系的认识.3,将之隔离与其他认…
本书简介 <计算机程序的构造与解释>这本书是MIT计算机科学学科的入门课程, 大部分学生在学这门课程前都没有接触过程序设计,也就是说这本书是针对编程新手写的. 虽然是入门课程,但起点比较高,看懂里面的知识需要比较扎实的数学功底, 最起码要有高中数学水平,如果高中数学没学好,看起来会比较吃力. 当然,这本书的目标不是教你去做数学分析,或者让你学会使用LISP,他的目标我理解如下 学会使用编程的一些基本元素,以编程的方式思考问题 学会如何使用抽象和创造抽象来解决复杂问题 学会如何良好的组织代码来编…
计算机程序的构造和解释习题解答 Structure and Interpretation os Computer Programs Exercises Answer 第二章 构造数据抽象 练习2.17 (define last-pair-1 (lambda (input) (if (= (length input) 1) input (last-pair-1 (cdr input))))) ;因为length的定义是递归定义的,所以如果是一个长列表,用length会非常耗时 ;last-pair…
     大概不少programmer都看过<黑客与画家>,作者用了整整一章的篇幅讨论Lisp的强大.我自然就会手痒痒.      几个月前,几天内攻城略地搞定了Python,用的方法便是用Py重写之前开发的类库,这样就能很快熟悉语法,培养语感.喜上眉梢的我,也尝试将同样的策略用在Lisp上,我开始查看它的语法和函数,比如如何定义类和函数,如何赋值等等.      但我慢慢发现,Lisp几乎都不需要学语法,就是括号和几个基本过程,无非就是lambda, define, let,cons,car…
在本书的第二章学习时,有一个问题我一直很困扰,那是2.2.4举例节.因为没有华丽的输出模式书,它只能有一个对的英文字母.两三个月的这浅浅的学校前Common Lisp同样是真实的,当.了非常赞的线条,而我仅仅会输出一堆点.后来才知道让Lisp输出图形化界面是更高层次的project,想想还是先把SICP搞定. 上一篇博文中我们谈到了复合数据,关于它有两个重点.第一.数据抽象,这也就意味着你能够隔离那些数据对象.第二.在Lisp中有个特殊的方式能够黏住一些东西.它就是pair,而cons.car.…
SICP 解题集 — SICP 解题集 SICP 解题集¶ 这个文档的目标是成为中文化的.完整的<计算机程序的构造和解释>一书的解题集. 这个解题集的特色是: 对于每道习题,除了习题答案之外,还给出习题的讲解和相关资料(如果有的话): 使用 MIT Scheme 作为编程环境,完全避免了代码不兼容的问题: 所有代码都经过测试,确保准确性. 相关软件和链接 介绍了这个解题集中用到的程序和工具. 第一章: 构造过程抽象¶…
上一篇博文相应的是书中的第一章的一二两节,我们已经大致的有了一种构造的感觉不是么. 书中展示了非常多有趣的句法(syntax). 如今我们要让思想进一步的抽象.写这篇博客的时候并未学完整本书.更不敢说对书中的内容有一个多深的领悟.但我一路学习过来.就感觉书中的演示样例越来越抽象,作者所引导我们的也是如此方向.博文也会持续更新下去,伴随着我的理解. 在这个专栏的[Scheme归纳]4 高阶函数中已经初步介绍了什么是高阶函数(Higher-order Procedures). 而在这一节中,将用高阶…
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 模块化.对象和状态 练习答案 流 之前我们引入了用局部状态的计算对象来模拟现实世界里具有局部状态的计算对象,而这其中的复杂性来自被模拟对象随着事件变化的在计算机里是通过赋值实现的.那是否存在其他办法避免计算机里…
SICP CONCLUSION 让我们举起杯,祝福那些将他们的思想镶嵌在重重括号之间的Lisp程序员 ! 祝我能够突破层层代码,找到住在里计算机的神灵! 目录 1. 构造过程抽象 2. 构造数据抽象 3. 模块化.对象和状态 4. 元语言抽象 5. 寄存器机器里的计算 Chapter 3 模块化.对象和状态 练习答案 从前两章中我们认识到,在克服系统复杂性问题时,构造过程抽象和数据抽象祈祷了非常关键的作用.但是在进行组织模块化后,我们还需要一些组织原则来完成系统的整体设计,使这些系统自然地划分为…
SICP CONCLUSION 让我们举起杯,祝福那些将他们的思想镶嵌在重重括号之间的Lisp程序员 ! 祝我能够突破层层代码,找到住在里计算机的神灵! 目录 1. 构造过程抽象 2. 构造数据抽象 3. 模块化.对象和状态 4. 元语言抽象 5. 寄存器机器里的计算 Chapter 2 构造数据对象 练习答案 带有通用型操作系统 这里讲会实现一个通用型的算术包,大概可以分为几个抽象层 add sub mul div四个操作,支持所有这个算术包里所有支持的数据 有理数算术 复数算术 常规算术 最…
谈谈自己看SICP的一些体会 第一章  构造过程抽象 这一章事实上和C语言全然等价, 不打算深入学习LISP的能够高速略过. 思想上没有太多新的东西. 这一章最核心的价值就是以下3句话, 理解了这一章就算看完了. 语言的原型系统 ·怎样组合 ·怎样提供高层抽象 这3句话是全部语言的核心. 基本上适用全部人. 后面的递归和迭代. 形式上和C区别大, 思想上事实上和C没多大区别. 高阶函数. C的函数指针略微呕心了点,也凑合着能替代. 闭包, 用以下呕心的结构也能凑合替代. typedef  str…
书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者@ucag注:大家好,我是新来的翻译,希望大家多多交流.题目还是沿用老传统.有做的不严谨的地方还请大家指出来.) (译者@夜夜月注:人多力量大,@ucag同学两天独立翻译完成第五章,全文翻译进度大大加快,赞…
在这一章中,我们将直接进入项目,并且为产品和分类添加一些基本的模型类.我们将在Entity Framework的代码优先模式下,利用这些模型类创建一个数据库.我们还将学习如何在代码中创建数据库上下文类.指定数据库连接字符串以及创建一个数据库.最后,我们还将添加视图和控制器来管理和显式产品和分类数据. 注意:如果你想按照本章的代码编写示例,你必须完成第一章或者直接从www.apress.com下载第一章的源代码. 2.1 添加模型类 Entity Framework的代码优先模式允许我们从模型类创…
书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:祝大家新年快乐,这次带来<Django By Example>第四章的翻译,这章非常的实用,就这样) 第四章 创建一个社交网站 在上一章中,你学习了如何创建站点地图(sitemaps)和feeds,你还为你的blog应用创建了一个搜索引擎.在本章中,你将开发一个社交应用.你会为用户创建一些功能,例如:登录,登出,编辑,以及重置他们…
书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:第三章滚烫出炉,大家请不要吐槽文中图片比较模糊,毕竟都是从PDF中截图出来的,有点丢像素,大致能看就行- -,另外还是渣翻,但个人觉的比前两章翻译的稍微进步了那么一点点- -,希望后面几章翻译的越来越溜,就这样) 第三章 扩展你的blog应用 在上一章中我们学习了表单的基础和在你的项目集成第三方的应用.这一章将会覆盖以下内容: 创建…
书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:翻译完第一章后,发现翻译第二章的速度上升了不少,难道这就是传说中的经验值提升了?) 第二章 使用高级特性来优化你的博客 在上一章中,你创建了一个基础的博客应用.现在你将要改造它成为一个功能更加齐全的博客,利用一些高级的特性例如通过email来分享帖子,添加评论,给帖子打上tag,检索出相似的帖子.在本章中,你将会学习以下几点: 使用…
书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:本人目前在杭州某家互联网公司工作,岗位是测试研发,非常喜欢python,目前已经使用Django为公司内部搭建了几个自动化平台,因为没人教没人带,基本靠野路子自学,走过好多弯路,磕磕碰碰一路过来,前段时间偶尔看到<Django By Example>这本书,瞬间泪流满面,当初怎么没有找到这么好的Django教程.在看书的过程中不知…
在这一章中,我们将学习如何使用基架快速搭建和运行一个简单的Microsoft ASP.NET MVC Web站点.在我们马上投入学习和编码之前,我们首先了解一些有关ASP.NET MVC和Entity Framework的背景信息,然后再详细学习如何搭建开发环境. 1.1 MVC和ASP.NET MVC 这本书涵盖Microsoft版本的MVC,即ASP.NET MVC.在写本书的时候,ASP.NET MVC的生产版本为MVC5,因此,本书的示例代码都使用ASP.NET MVC 5编写.在本书中…
原文:Routing to Controller Actions 作者:Ryan Nowak.Rick Anderson 翻译:娄宇(Lyrics) 校对:何镇汐.姚阿勇(Dr.Yao) ASP.NET Core MVC 使用路由 中间件 来匹配传入请求的 URL 并映射到具体的操作.路由通过启动代码或者特性定义.路由描述 URL 路径应该如何匹配到操作.路由也同样用于生成响应中返回的 URL(用于链接). 这篇文章将解释 MVC 和路由之间的相互作用,以及典型的 MVC 应用程序如何使用路由特…
向任务传递定制参数 获取任务待定的信息 生成多个输出 与关系数据库交互 让输出做全局排序   1.向任务传递作业定制的参数        在编写Mapper和Reducer时,通常会想让一些地方可以配置.例如第5章的联结程序被固定地写为取第一个数据列作为联结键.如果用户可以在运行时指定某个列作为联结键,就会让程序更具普适性.hadoop自身使用一个配置对象来存储所有作业的配置属性.你也可以使用这个对象将参数传递到Mapper和Reducer.        我们已经知道MapReduce的dri…
第一章一.引言mybatis是一个持久层框架,是apache下的顶级项目.mybatis托管到goolecode下,再后来托管到github下.(百度百科有解释)二.概述mybatis让程序将主要精力放在sql上,通过mybatis提供的映射方式,自由灵活生成(半自动化,大部分需要程序员编写sql)满足需要sql语句.mybatis可以将向preparedStatement中的输入参数自动进行输入映射,将查询结果集灵活映射成java对象.(输出映射)三.框架原理sqlMapConfig.xml:…
Nova PhoneGap Framework诞生于2012年11月,从第一个版本的发布到现在,这个框架经历了多个项目的考验.一直以来我们也持续更新这个框架,使其不断完善.到现在,这个框架已比较稳定了,对于中小型项目可以直接拿来用,对于大型项目,也只需稍加改造就能够完美支持. 目前该框架实现的核心功能如下: 帮你合理的组织文件结构: 页面跳转.传值以及事件,如load, navigate, away等: 合理绑定设备事件,使用起来更容易: 本地数据库(SQLite)访问: 滚动条. 其他插件,如…
原文:Controller methods and views 作者:Rick Anderson 翻译:谢炀(Kiler) 校对:孟帅洋(书缘) .张仁建(第二年.夏) .许登洋(Seay) .姚阿勇(Dr.Yao) .娄宇(Lyrics) 我们已经初步的创建了一个 movie 应用程序,但是展示并不理想.我们不希望看到 release date 字段显示时间并且 ReleaseDate 应该是两个单词. 打开 Models/Movie.cs 文件并添加下面高亮的代码行: public clas…
原文:Application Startup 作者:Steve Smith 翻译:刘怡(AlexLEWIS) 校对:谢炀(kiler398).许登洋(Seay) ASP.NET Core 为你的应用程序提供了处理每个请求的完整控制.Startup 类是应用程序的入口(entry point),这个类可以设置配置(configuration)并且将应用程序将要使用的服务连接起来.开发人员可以在 Startup 类中配置请求管道,该管道将用于处理应用程序的所有请求. 章节: Startup 类 Co…