notes-SICP
Last edited May 24, 2009
More by KaiChen »
Sections:
概念
Scheme
概念
递归与迭代
递归计算过程:计算过程由一个推迟执行的运算链条刻画。
线性递归过程:保存算法轨迹的信息量的长度随着n值而线性增长。
迭代计算过程:可以以固定书目的状态变量描述的计算过程。
线性迭代过程:所需计算的步骤随着n线性增长。
Labels:
scheme, sicp, concept
程序设计语言的第一级元素
程序设计语言中带有最少限制的元素称为具有第一级状态:
可以用变量命名
可以提供给过程作为参数
可以由过程作为结果返回
可以包含在数据结构中
Lisp中过程是一等公民
Labels:
Lisp, sicp, concept
什么是谓词?
谓词就是一个表达式的值会被解释为布尔值。
Labels:
scheme, sicp, concept
数据抽象
为每一类的数据对象标示出一组操作,使得对这类数据对象的所有操作都可以基于它们的表达,而且在操作这些数据对象时也使用它们。
优点:
使程序易于维护和修改
把具体表现方式的依赖性限制到少数几个接口上
Labels:
scip, concept
Scheme
cond条件表达式
(cond (<p1> <e1>)
(<p2> <e2>)
......
(<pn> <en>)
(else <es>))
顺序式的谓词(<p>)匹配,直到匹配为止,未匹配到则无定义。
Labels:
scheme, sicp
序对表示
(cons a d)
用car和cdr分别可以取出第一个参数和第二个参数。
lambda过程
lambda表达式
(lambda (<formail-parameters>) <body>)
构造匿名过程
let表达式
(let ((<var1> <exp1>)
(<var2> <exp2>)
......
(<varn> <expn>))
<body>)
构造一个匿名过程,并在执行前初始化一些局部变量。实质是lambda的语法糖衣。
Labels:
scheme, sicp
Scheme内置过程
define 定义事物
+-*/ 加减乘除
abs 求绝对值
and or not 作逻辑运算
Labels:
scheme, sicp
Guile小技巧
-s 运行源码文件
-l 导入源码(导入约束及过程)
-c 直接执行跟在后面的语句,类似MRI Ruby的-e
Labels:
scheme, guile
The content on this page is provided by a
Google Notebook
user, and Google assumes no responsibility for this content.