【SICP练习】45 练习2.4



练习2.4

直接运用对比的技巧就可以猜测出相应的cdr表示如下:

(define (cdr z)

   (z (lambda (p q) q)))

但我们还是要按照题中要求用代换模型来检验。先来检验car的。

(car (cons 0 1))

(car (lambda (m) (0 1)))

((lambda (z) (z (lambda (p q) p)))

  (lambda (m) (0 1)))

((lambda (m) (0 1)) (lambda (p q) p))

((lambda (p q) p) 0 1)

0

接下来是cdr的。

(cdr (cons 0 1))

(cdr (lambda (m) (0 1)))

((lambda (z) (z (lambda (p q) q)))

   (lambda (m) (0 1)))

((lambda (m) (0 1)) (lambda (p q) q))

((lambda (p q) q) 0 1)

1

大家可以在Edwin中测试一下。

时间: 2024-09-29 06:34:57

【SICP练习】45 练习2.4的相关文章

【SICP练习】118 练习3.45【待完成】

练习3-45 原文 Exercise 3.45. Louis Reasoner thinks our bank-account system is unnecessarily complex and error-prone now that deposits and withdrawals aren't automatically serialized. He suggests that make-accountand-serializer should have exported the se

【SICP练习】40 练习1.45

 练习1.45 如果看到前面的文章,应该知道我喜欢将某个变量n先设成一个固定的数比如3.4什么的.这里我们依旧如此,先来看看如何写出开四次方根的过程.这道题的目的旨在让我们好好回顾前面的内容,毕竟只剩下一道题我们就完完全全的解决了第一章. 下面我来带大家一起回顾一下.fixed-point是以1个函数和一个初始猜测为参数的函数,用来计算不动点.所谓的不动点就是x=f(x)时的点x.比如这个式子,(fixed-point square 1.0),它会返回1,因为1的平方等于1. average

【SICP练习】74 练习2.45

 练习2.45 我们先将right-split和up-split抽象出一个split来. (define (split big-combinersmall-combiner)    (lambda (painter n)        (if (= n 0)           painter           (let ((smaller ((split big-combinersmall-combiner) painter (- n 1))))              (big-co

【SICP归纳】2 高阶函数和数据抽象

上一篇博文对应的是书中的第一章的一二两节,我们已经大致的有了一种构造的感觉不是么.书中展示了很多有趣的句法(syntax).现在我们要让思想进一步的抽象,写这篇博客的时候并未学完整本书,更不敢说对书中的内容有一个多深的领悟.但我一路学习过来,就感觉书中的示例越来越抽象,作者所引导我们的也是如此方向.博文也会持续更新下去,伴随着我的理解. 在这个专栏的[Scheme归纳]4 高阶函数中已经初步介绍了什么是高阶函数(Higher-order Procedures).而在这一节中,将用高阶函数来做抽象

SICP第三章题解

SICP第三章题解 标签(空格分隔): SICP [toc] ex3-17 统计一个表结构中的序对个数 (define (count-pairs x) (count-helper x '())) (define (count-helper x seq) (if (memq? x seq) (count-helper (cdr x) seq) (count-helper (cdr x) (list x seq)) ) ) ex3-18 判断一个表中是否包含环. 我的思路:还是用memq去判断. (

在 WIN 平台上让你的 Apache 2.0.45 支持 PHP

apache 前言如果你对使用 Apache 缺乏信心.或者你已经在使用 apache 2 但是不能让他和 PHP 一起工作(apache不能解析你的.php脚本).不要怕,读完本文后,所有的问题都会迎韧而解的. 我将如何使 Apache 和 PHP 共同合作的方法步骤归纳总结了一下.其实,这么比其他人所说的简单得多.我很惊讶为什么在这之前没有人写一个针对这个问题的操作指南,好让每个人都能够更好地理解和使用 Apache 2.0 .凭着个人的兴趣,我分析了 Apache 2.0,特别地,为了获得

2345智能浏览器快速跳过45秒视频广告

观看视频将为您智能拦截片头.片中.片尾各种15秒.30秒.45秒的广告,让用户更快速地看到自己想看的视频.电影.电视剧,无需等待. 1. 首先,在官网下载V2.3最新版的2345智能浏览器:http://ie.2345.com/ 2. 安装时勾选"开启视频广告拦截功能(需安装第三方插件)" 3. 安装完成后,通过四步设置向导,即可开始"清爽"看视频啦 4. 打开2345.com网址导航页面,点击影视大全,随意选择一部您喜爱的电影,以<北京青年>为例,打开

webjx收集45个jQuery导航插件和教程

45个jQuery 导航插件及教程.新用户访问一个网站的最初15-20妙会对他们对网站的喜好影响很大,促使他们决定去留.所以开发一个直观易用,风格恰当的导航帮助用户开始是非常重要的.这篇文章列出的这些教程不仅体现了jQuery的强大,也展示了导航创意设计的众多可能. Horizontal Menu Navigation Plugins and Tutorials Mega Drop Down Menu w/ CSS & jQuery DemoAccording to usability expe

在WIN平台上让你的 Apache 2.0.45 支持 PHP

apache 前言如果你对使用 Apache 缺乏信心.或者你已经在使用 apache 2 但是不能让他和 PHP 一起工作(apache不能解析你的.php脚本).不要怕,读完本文后,所有的问题都会迎韧而解的. 我将如何使 Apache 和 PHP 共同合作的方法步骤归纳总结了一下.其实,这么比其他人所说的简单得多.我很惊讶为什么在这之前没有人写一个针对这个问题的操作指南,好让每个人都能够更好地理解和使用 Apache 2.0 .凭着个人的兴趣,我分析了 Apache 2.0,特别地,为了获得