摘要: 这一节对之前提到的map概念又进行了扩展,map与递归的结合是一种处理树的强有力抽象。 练习2.30 请定义一个与练习2.21中square-list过程类似的square-tree过程。要求定义一个传统过程和一个使用map的过程。 点击查看代码 (define nil '()) (define ( 阅读全文
posted @ 2025-12-15 22:08 檐上落白luckin 阅读(0) 评论(0) 推荐(0)
摘要: 前文提到scheme的表是一种序对的层次性结构,本节对层次性结构进行一点扩展,通过树状结构来表达该结构。 练习2.24 求值(list 1 (list 2 (list 3 4))),给出对应的层次性结构。 求值部分就扔进去就完了(1 (2 (3 4))) 结构大概是(1 (2 (3 4))) → ( 阅读全文
posted @ 2025-12-15 19:39 檐上落白luckin 阅读(2) 评论(0) 推荐(0)
摘要: map是处理list的一个比较简便的方式,通过map可以省去挨个对list元素的处理,强调元素表到结果表的一个变换。 (define (scale-list items factor) (if (null? items) nil (cons (* (car items) factor) (scale 阅读全文
posted @ 2025-12-12 20:51 檐上落白luckin 阅读(5) 评论(0) 推荐(0)
摘要: 该小节提到了通过序对构建表——list,多个序对,可以通过层层嵌套的方式,(1 (2 (3 (4 ……))))构建一个表。 由于我还是计算机程序的初学者,我很好奇其他的语言是否也是这样做的?但这个问题只能暂时滞留了,我得先学完scheme才有精力去研究其他语言。 针对list,有很多配套的操作需要学 阅读全文
posted @ 2025-12-11 18:16 檐上落白luckin 阅读(6) 评论(0) 推荐(0)
摘要: 接着考虑区间算术的内容。 练习2.13 在误差为很小的百分数的条件下,存在着一个简单公式,利用它可以从两个被乘区间的误差算出乘积的百分数误差值 这个问题比较像一个纯粹的数学题,跟我们构建过程或者函数没有什么关系,但不妨碍我们试着解答它。 假设两个区间的分别是c1、c2,误差分别为p1、p2,则实际值 阅读全文
posted @ 2025-12-10 20:24 檐上落白luckin 阅读(3) 评论(0) 推荐(0)
摘要: 上一篇随笔漏了练习2.5和2.6,这边补充一下。 练习2.5要求证明如果能够将a和b的序对表示为乘积(2a)*(3b)对应的整数,我们可以只用非负整数和算术运算表示序对。 这个表述有点绕口,我最初理解为用(2a)*(3b)表示任意整数,但这是做不到的(在a和b都为非负整数的情况下);而如果是通过(2 阅读全文
posted @ 2025-12-09 19:59 檐上落白luckin 阅读(4) 评论(0) 推荐(0)
摘要: 通过对过程的逐步抽象,不难看出过程可以演化为某种模式,因此在新的章节。我们将在数据上做同样的抽象。 此处引入数对的概念来表达有理数,即通过基础过程cons,表达一个有序的数对:(define x (cons n d)) 通过该数对,可以完成对数据的抽象。 点击查看代码 ;分数的加法 (define 阅读全文
posted @ 2025-12-05 18:22 檐上落白luckin 阅读(8) 评论(0) 推荐(0)
摘要: 根据牛顿法,如果g(x)是一个可微函数,那么方程g(x)=0的一个解就是f(x)的一个不动点,其中f(x)=x-g(x)/Dg(x),其中Dg(x)就是g对x的导数。 通过牛顿法,我们可以将方程求解的过程转换为寻找不动点的过程。 但还有一个问题要解决,如何表达导数? 根据导数的定义,Dg(x)=(g 阅读全文
posted @ 2025-12-04 22:52 檐上落白luckin 阅读(11) 评论(0) 推荐(0)
摘要: 本节的主要内容在于lambda函数和let函数,通过两种新的函数形式减少了定义的使用,对过程设计进行了简化。 lambda函数用于减少define的使用,使得过程的编制更加符合直觉,通过lambda(x)(fx)的形式可以减少很多函数体外的定义过程。 let函数更多用于定义局部变量,通过let体内的 阅读全文
posted @ 2025-12-04 18:24 檐上落白luckin 阅读(4) 评论(0) 推荐(0)
摘要: 本章主要内容在于将基础计算的过程抽象出来成为一个普遍流程,以此增加函数应用的普遍性,提高后续使用时的上限。 练习1.29 辛普森积分 辛普森积分的数学性比较强,重点在于抽象积分过程,对积分系数进行分类讨论。 点击查看代码 (define (even? x) ( = (remainder x 2) 0 阅读全文
posted @ 2025-12-03 21:40 檐上落白luckin 阅读(3) 评论(0) 推荐(0)