博主头像
zzh

ワクワク

分类 SICP学习记录 下的文章

2.5.3实例:符号代数

在本次实例中只考虑实现多项式的加法与乘法功能,同时未定元(自变量)也只有一个。在书中,这一次实例还有其他部分,比如嵌入安装包等。但我在书上没有找到如何构造出操作表格,放入,取出的操作,只是假定它可以实现。我也不清楚这一种数据结构如何实现,所以跳过了这一部分,只完成了多项式加法与乘法的功能。;;前置要求:仅考虑加法和乘法,有相同未定元,项表按增序排列 ;;多项式算术 ;;首先假定多项式为pol

2.3.4实例哈夫曼编码树

哈夫曼树用于给字符编码,其中哈夫曼树方法能够对于同样的信息谁用更少(或者说最少)的二进制位。其算法具体思想不作赘述,主要在于代码的实现#lang sicp ;;首先思考如何表示树和叶 ;;以下是叶子的表示 (define (make-leaf symbol weight);;构造一个叶子 (list 'leaf symbol weight) ) (define (leaf? objec

2.3.3实例:集合表示

集合支持一系列的操作,同时也就可以把集合定义为一组可以作用于集合的操作。分别是判断元素是否存在于集合里的方法,插入,求交,求并方法一:把集合表示成未排序的表。这种方法时间复杂度较高,基础操作element-of-set? 增长阶是线性的。#lang sicp (define (element-of-set? x set) (cond ((null? set) false) ((

2.3.2实例:符号求导

像之前一样,我们先假设已经有了一种表达代数表达式的方式,同时有相应的构造函数,选择函数和谓词。在此基础上根据求导法则完成符号求导的操作。做完这些后,我们再去实现代数表达式的定义与其支持的操作。完成这些还不够,使用的效果不如预期,这也是因为表达式是需要化简的。为了实现化简,我们对求和&&求乘积的方法进行修改。以上是整体的思路,接下来是代码的具体实现。#lang sicp (define (deriv

2.1.1实例:有理数的算术运算

这个实例最展现了一种复合的方法(cons),让我们能够操作抽象的元素。最主要的是掌握其思想:愿望性思维。作为开始,我们假设已经有了一种构造有理数的方法(构造函数)和取得各个元素的方法(选择函数)。在这个基础上构造了有理数的加减乘除。在完成了这一部分之后,我们再转头去实现有理数的底层实现。这样很自然地,我们就把有理数的实现与其支持的方法隔离的开来,构造了一层抽象屏障。#lang sicp #;(再实