退出telnet的方法.md

近期在linux环境中开发STM32,需要使用openOCD创建仿真环境,这里需要telnet一个本地端口进行监听,这里先输入命令^C + ]。退出telnet环境,再在控制台中输入quit既可以关闭创建的端口。

SICP学习笔记-层次性数据和闭包性质

序对就是一种通用的建筑砌块,通过它可以构造起所有不同种类的数据结构。这里建立的元素本省也是序对的序对,这就是表结构得以作为一种表示工具的根本基础。我们将这种能力称为cons的 闭包性质。一般来说如果某种组合数据对象满足闭包性质,那就是说,通过它组合起来的数据对象的得到的结果本生还可以通过同样的操作再进行组合。

Read More

SICP学习笔记-数据抽象引导

针对复合数据的类似概念被称为 数据抽象 。数据抽象是一种方法学,它使我们能够将一个复合数据对象的使用,与该数据对象怎样由更基本的数据对象构造起来的细节隔离开。

数据抽象的基本思想就是设法构造出一些使用复合数据对象的程序,使它们就像是在“抽象数据”上操作一样。也就是说,我们程序中使用数据的方式应该是,除了完成当前工作所必须的东西之外,它们不对所用数据做任何多余的假设。与此同时,一种“具体”的数据表示的定义,也应该与程序中使用数据的方式无关。在我们的系统里,这样两个部门之间的界面将是一组过程,称为 选择函数和构造函数

Read More

SICP学习笔记-用高阶函数做抽象

前言

人们对于功能强大的程序设计语言有一个必然的要求,就是能够为公共模式命名,建立抽象,然后直接在抽象的层次上面工做。过程提供了这种能力,这也是为什么除了最简单的那些语言外,其他语言都包含定义过程的机制的原因。

然而,即使在数值计算过程中,如果将过程限制为只能以数作为参数,那么也会严重地限制我们建立抽象的能力。经常存在一些相同的程序设计模式能够用于若干不同的过程。为了将这种模式描述为相应的概念,我们就需要构造这样的过程,让它们以过程作为参数,或者以过程为返回值,这类能操作过程的过程称为 高阶过程

Read More

SICP学习笔记-过程与它们所产生的计算

前言

在前面一节里已经考虑了程序设计中的一些要素:使用许多基本的算数过程进行操作,对这种操作进行组合,通过定义各种复合过程,对复合操作进行抽象。
这一节将学习编程领域各种有用的常见模式,获得一种值得定义那些过程的知识,并能够对执行一个过程的效果作出预期的能力。
一个过程也就是一种模式,它描述了一个计算过程的 局部演化方式 ,描述了这一计算过程中的每个步骤是怎样基于前面的步骤建立起来的。
在有一个刻画的计算过程描述之后,这里做出一些有关这个计算过程整体或者全局过程的论断。

Read More

SICP学习笔记-前言与程序设计的基本元素

前言

这本书所要讨论的问题都要涉及到三类需要关注的对象:人的大脑、计算机程序的集合以及计算机的本身。每一个计算机程序都是现实中或者精神中某个过程的模型。

心智活动,除了尽力产生各种简单的认识之外,主要表现在如下三个方面:

  • 将若干简单的认识组合为一个复杂的认识,由此产生各种复杂的认识。
  • 将两个认识放在一起对照,不管他们是如何简单或者复杂,在这样作时并不是将他们合而为一。而是由此得到他们之间相互关系的认识。
  • 将有关认识与那些在实际中和他们同在的所有其他认识隔离开,这就是抽象,所有具有普遍性的认识都是这样得到的。

Read More