SICP Python 描述 3.2 函数和所生成的过程

2016-09-07
阅读 9 分钟
2.4k
函数是计算过程的局部演化模式。它规定了过程的每个阶段如何构建在之前的阶段之上。我们希望能够创建有关过程整体行为的语句,而过程的局部演化由一个或多个函数指定。这种分析通常非常困难,但是我们至少可以试图描述一些典型的过程演化模式。

SICP Python 描述 3.3 递归数据结构

2016-09-06
阅读 9 分钟
2.3k
在第二章中,我们引入了偶对的概念,作为一种将两个对象结合为一个对象的机制。我们展示了偶对可以使用内建元素来实现。偶对的封闭性表明偶对的每个元素本身都可以为偶对。

SICP Python 描述 3.4 异常

2016-09-05
阅读 4 分钟
1.8k
程序员必须总是留意程序中可能出现的错误。例子数不胜数:一个函数可能不会收到它预期的信息,必需的资源可能会丢失,或者网络上的连接可能丢失。在设计系统时,程序员必须预料到可能产生的异常情况并且采取适当地措施来处理它们。

SICP Python 描述 3.5 组合语言的解释器

2016-09-05
阅读 9 分钟
2.4k
运行在任何现代计算机上的软件都以多种编程语言写成。其中有物理语言,例如用于特定计算机的机器语言。这些语言涉及到基于独立储存位和原始机器指令的数据表示和控制。机器语言的程序员涉及到使用提供的硬件,为资源有限的计算构建系统和功能的高效实现。高阶语言构建在机器语言之上,隐藏了表示为位集的数据,以及表示...

SICP Python 描述 第三章 计算机程序的构造和解释 3.1 引言

2016-09-04
阅读 1 分钟
3k
第一章和第二章描述了编程的两个基本元素:数据和函数之间的紧密联系。我们看到了高阶函数如何将函数当做数据操作。我们也看到了数据可以使用消息传递和对象系统绑定行为。我们已经学到了组织大型程序的技巧,例如函数抽象,数据抽象,类的继承,以及泛用函数。这些核心概念构成了坚实的基础,来构建模块化,可维护和可...

SICP Python 描述 2.7 泛用方法

2016-09-03
阅读 11 分钟
1.8k
这一章中我们引入了复合数据类型,以及由构造器和选择器实现的数据抽象机制。使用消息传递,我们就能使抽象数据类型直接拥有行为。使用对象隐喻,我们可以将数据的表示和用于操作数据的方法绑定在一起,从而使数据驱动的程序模块化,并带有局部状态。

SICP Python 描述 2.6 实现类和对象

2016-09-02
阅读 5 分钟
2.5k
在使用面向对象编程范式时,我们使用对象隐喻来指导程序的组织。数据表示和操作的大部分逻辑都表达在类的定义中。在这一节中,我们会看到,类和对象本身可以使用函数和字典来表示。以这种方式实现对象系统的目的是展示使用对象隐喻并不需要特殊的编程语言。即使编程语言没有面向对象系统,程序照样可以面向对象。

SICP Python 描述 2.5 面向对象编程

2016-09-02
阅读 12 分钟
2.3k
面向对象编程(OOP)是一种用于组织程序的方法,它组合了这一章引入的许多概念。就像抽象数据类型那样,对象创建了数据使用和实现之间的抽象界限。类似消息传递中的分发字典,对象响应行为请求。就像可变的数据结构,对象拥有局部状态,并且不能直接从全局环境访问。Python 对象系统提供了新的语法,更易于为组织程序实...

SICP Python 描述 2.4 可变数据

2016-09-01
阅读 18 分钟
2.7k
我们已经看到了抽象在帮助我们应对大型系统的复杂性时如何至关重要。有效的程序整合也需要一些组织原则,指导我们构思程序的概要设计。特别地,我们需要一些策略来帮助我们构建大型系统,使之模块化。也就是说,它们可以“自然”划分为可以分离开发和维护的各个相关部分。

SICP Python 描述 第四章 分布式和并行计算

2016-08-19
阅读 15 分钟
2.6k
目前为止,我们专注于如何创建、解释和执行程序。在第一章中,我们学会使用函数作为组合和抽象的手段。第二章展示了如何使用数据结构和对象来表示和操作数据,以及向我们介绍了数据抽象的概念。在第三章中,我们学到了计算机程序如何解释和执行。结果是,我们理解了如何设计程序,它们在单一处理器上运行。

SICP Python 描述 第五章 序列和协程

2016-08-16
阅读 14 分钟
2.1k
在这一章中,我们通过开发新的工具来处理有序数据,继续讨论真实世界中的应用。在第二张中,我们介绍了序列接口,在 Python 内置的数据类型例如tuple和list中实现。序列支持两个操作:获取长度和由下标访问元素。第三章中,我们开发了序列接口的用户定义实现,用于表示递归列表的Rlist类。序列类型具有高效的表现力,并...

SICP Python 描述 2.3 序列

2016-08-14
阅读 12 分钟
2k
序列在计算机科学中是强大而基本的抽象。例如,如果我们使用序列,我们就可以列出伯克利的每个学生,或者世界上的每所大学,或者每所大学中的每个学生。我们可以列出上过的每一门课,提交的每个作业,或者得到的每个成绩。序列抽象让数千个数据驱动的程序影响着我们每天的生活。

SICP Python 描述 2.2 数据抽象

2016-08-12
阅读 5 分钟
1.9k
由于我们希望在程序中表达世界中的大量事物,我们发现它们的大多数都具有复合结构。日期是年月日,地理位置是精度和纬度。为了表示位置,我们希望程序语言具有将精度和纬度“粘合”为一对数据的能力 -- 也就是一个复合数据结构 -- 使我们的程序能够以一种方式操作数据,将位置看做单个概念单元,它拥有两个部分。

SICP Python 描述 第二章 使用对象构建抽象 2.1 引言

2016-08-11
阅读 3 分钟
2.1k
在第一章中,我们专注于计算过程,以及程序设计中函数的作用。我们看到了如何使用原始数据(数值)和原始操作(算术运算),如何通过组合和控制来形成复合函数,以及如何通过给予过程名称来创建函数抽象。我们也看到了高阶函数通过操作通用计算方法来提升语言的威力。这是编程的本质。

SICP Python 描述 1.6 高阶函数

2016-08-10
阅读 10 分钟
2.7k
并且永远不会显式提及square。这种实践适合类似square的简单操作。但是对于更加复杂的操作会变得困难。通常,缺少函数定义会对我们非常不利,它会强迫我们始终工作在特定操作的层级上,这在语言中非常原始(这个例子中是乘法),而不是高级操作。我们应该从强大的编程语言索取的东西之一,是通过将名称赋为常用模式来构...

SICP Python 描述 1.5 控制

2016-08-09
阅读 6 分钟
2.1k
我们现在可以定义的函数能力有限,因为我们还不知道一种方法来进行测试,并且根据测试结果来执行不同的操作。控制语句可以让我们完成这件事。它们不像严格的求值子表达式那样从左向右编写,并且可以从它们控制解释器下一步做什么当中得到它们的名称。这可能基于表达式的值。

SICP Python 描述 1.4 实践指南:函数的艺术

2016-08-08
阅读 2 分钟
1.8k
函数是所有程序的要素,无论规模大小,并且在编程语言中作为我们表达计算过程的主要媒介。目前为止,我们讨论了函数的形式特性,以及它们如何使用。我们现在跳转到如何编写良好的函数这一话题。

SICP Python 描述 1.3 定义新的函数

2016-08-08
阅读 6 分钟
2k
1.3 定义新的函数 来源:1.3 Defining New Functions 译者:飞龙 协议:CC BY-NC-SA 4.0 我们已经在 Python 中认识了一些在任何强大的编程语言中都会出现的元素: 数值是内建数据,算数运算是函数。 嵌套函数提供了组合操作的手段。 名称到值的绑定提供了有限的抽象手段。 现在我们将要了解函数定义,一个更加强大的抽象...

SICP Python 描述 1.2 编程元素

2016-08-05
阅读 5 分钟
2.9k
编程语言是操作计算机来执行任务的手段,它也在我们组织关于过程的想法中,作为一种框架。程序用于在编程社群的成员之间交流这些想法。所以,程序必须为人类阅读而编写,并且仅仅碰巧可以让机器执行。

SICP Python描述 1.1 引言

2016-08-04
阅读 5 分钟
3k
计算机科学是一个极其宽泛的学科。全球的分布式系统、人工智能、机器人、图形、安全、科学计算,计算机体系结构和许多新兴的二级领域,每年都会由于新技术和新发现而扩展。计算机科学的快速发展广泛影响了人类生活。商业、通信、科学、艺术、休闲和政治都被计算机领域彻底改造。