`
fantasybei
  • 浏览: 38327 次
  • 性别: Icon_minigender_1
  • 来自: 农村进沪务工人员
社区版块
存档分类
最新评论

1.6

    博客分类:
  • SICP
 
阅读更多
Alyssa P. Hacker doesn't see why if needs to be provided as a special form. ``Why can't I just define it as an ordinary procedure in terms of cond?'' she asks. Alyssa's friend Eva Lu Ator claims this can indeed be done, and she defines a new version of if:
(define (new-if predicate then-clause else-clause)
  (cond (predicate then-clause)
        (else else-clause)))
Eva demonstrates the program for Alyssa:
(new-if (= 2 3) 0 5)
5
(new-if (= 1 1) 0 5)
0
Delighted, Alyssa uses new-if to rewrite the square-root program:
(define (sqrt-iter guess x)
  (new-if (good-enough? guess x)
          guess
          (sqrt-iter (improve guess x)
                     x)))
What happens when Alyssa attempts to use this to compute square roots? Explain.


今天中午午休的时候想了很久想不出来,后来看了下网上另一个人的解释,如下
(define (inc x y)
  (new-if (= x y)
          0
          (inc (+ x 1) y)))
(inc 1 5)

我开始的时候想的是,第一次是展开成
(new-if (= 1 5)
          0
          (inc 2 5))

然后这个expression的结果我想成了是(inc 2 5),把new-if当成了if,按这样想下去,应该到(inc 5 5)的时候就该停止了,呵呵 其实是应该展开成上面的表达式后,会继续去eval ,(inc 2 5),然后遇到new-if,在去(inc 3 5),最后就栈溢出了,看来还是脑子太久没转了,
分享到:
评论

相关推荐

    NOI.zip_NOI题库1.6答案_noi 1.6题库答案_noi.1.6_noi题库1.6_noi题库答案1.6

    《NOI题库1.6答案解析》 全国青少年信息学奥林匹克(National Olympiad in Informatics,简称NOI)是一项面向中学生的编程竞赛,旨在培养青少年的计算机科学素养和创新能力。题库1.6是NOI系列训练的一个重要部分,...

    OCPP1.6J学习质料

    《OCPP1.6J学习质料》是关于充电桩领域的一个关键协议标准,它详细定义了电动汽车充电站(也称为充电点)与中央管理系统之间的通信规范。OCPP,全称Open Charge Point Protocol,是一个开放的、国际认可的协议,旨在...

    JRE1.6 Win32 X86

    这个版本的JRE1.6对于那些需要在32位系统上运行基于Java1.6技术的应用程序的用户来说至关重要。 JRE1.6是Java Development Kit(JDK)的一部分,JDK是用于开发和调试Java程序的工具集。JRE则包含了运行这些程序所需...

    OCPP 1.6 pdf带目录版本

    **OCPP 1.6:电动汽车充电站通信协议详解** OCPP(Open Charge Point Protocol)是一种开放的、基于XML的通信协议,专为电动汽车充电基础设施设计,用于充电桩(Charge Point)与充电站管理系统的交互。标题提到的...

    jdk 1.6 64位

    JDK 1.6,也称为Java SE(标准版)6,是Java编程语言的一个早期版本,发布于2006年。它包含了Java编译器、Java虚拟机(JVM)、Java类库以及开发者用来创建、调试和部署Java应用程序所需的各种工具。 **JDK 1.6的...

    OCPP1.6 英文版 OCPP1.6 英文版 OCPP1.6 英文版

    2015年:OCPP1.6 OCPP1.5的功能 支持基于websockets协议的JSON格式数据,以减少数据流量(JSON,JavaScript对象表示法,是一种轻量级的数据交换格式)并且允许在不支持充电点包路由的网络上运行(例如公共internet)。 ...

    jdk1.6免安装版

    JDK1.6是Oracle公司发布的一个早期版本,虽然现在已有更新的版本如JDK 8、11或17,但有些老旧的项目可能仍依赖于这个版本。本文将深入探讨JDK1.6的特点、用途以及免安装版的优缺点。 首先,JDK1.6包含了Java编译器...

    MX Player 1.6c 附带V6 1.6c解码器,亲测可用

    在1.6c版本中,它附带了V6 1.6c解码器,这使得用户能够播放多种格式的视频内容,尤其是那些需要高性能解码能力的高清或者编码复杂的视频文件。 解码器是播放器的核心组件,负责将视频文件中的数据转换为音频和视频...

    JDK1.6支持WebService

    Java Development Kit (JDK) 1.6 是一个重要的Java平台版本,它引入了许多新特性以增强开发者的体验,其中包括对Web服务(Web Services)的全面支持。Web服务是一种通过互联网进行应用程序之间的通信方式,允许不同...

    JDK1.6版本下载

    **JDK 1.6版本详解** Java Development Kit(JDK)是Oracle公司提供的用于开发和运行Java应用程序的工具集合。JDK 1.6,也被称为Java SE 6,是Java平台的一个重要版本,发布于2006年12月11日。这个版本在Java社区中...

    CS1.6的完整路线代码

    CS1.6,全称Counter-Strike 1.6,是一款经典的多人在线第一人称射击游戏,由Valve Software开发并发行。它以其高度的竞技性、平衡的武器系统和丰富的地图选择深受玩家喜爱。本资源提供的“CS1.6的完整路线代码”可能...

    苹果电脑安装jdk1.6 mac for jdk1.6 jdk6 安装版

    mac for jdk1.6 jdk6 安装版 里面有两个jdk1.6的安装包,都可以用 如果电脑上安装有1.7,1.8等高版本jdk就不要再下安装包了,安装包安装会报错 命令是这个:brew install java6或 brew install homebrew/cask-...

    cs1.6方言语音包

    《CS1.6方言语音包:游戏文化与地域特色的声音艺术》 CS1.6,全称Counter-Strike 1.6,是一款经典的多人在线第一人称射击游戏,以其紧张刺激的对战体验和丰富的战术策略深受玩家喜爱。在这款游戏中,语音交流是团队...

    jdk1.6集成jjwt的问题

    标题中的“jdk1.6集成jjwt的问题”指的是在Java Development Kit (JDK) 版本1.6的环境下,尝试整合JSON Web Token (JWT) 库jjwt时遇到的挑战。JWT是一种开放标准(RFC 7519),用于在各方之间安全地传输信息作为 ...

    java 1.6 中文 帮助文档

    Java 1.6 中文帮助文档是针对Java开发者极其重要的参考资料,它包含了Java SE(标准版)1.6版本的所有API和技术细节。这份文档详细解释了各种类、接口、方法和异常,为开发者提供了全面的编程指导。以下是该文档中的...

    OCPP 1.6 JSON格式

    OCPP 1.6版本是该协议的一个重要升级,旨在提高互操作性、安全性和效率。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在OCPP 1.6中,JSON被用作...

    jdk1.6压缩包,下载即用

    JDK 1.6 版本是Oracle公司发布的一个早期版本,尽管现在已经有更新的版本(如JDK 8、11、17等),但在某些特定场景或兼容性需求下,仍需使用JDK 1.6。 **1. JDK的组成部分** - **Java编译器(javac)**:将源代码...

    JDK1.6百度云下载

    根据提供的标题、描述以及部分内容,我们可以总结出与JDK1.6百度云下载相关的几个重要知识点: ### 一、JDK1.6简介 Java Development Kit(简称JDK)是Sun Microsystems公司针对Java语言开发的一套开发工具包,它...

    jdk1.6_green_32bit

    本资源"jdk1.6_green_32bit"是一个针对32位操作系统的绿色版JDK,无需安装即可使用,这在某些场景下非常方便,比如在没有管理员权限或者希望快速部署的环境中。 JDK 1.6,也被称为Java SE(标准版)6,是Oracle公司...

    充电桩OCPP 1.6 测试用例Test case document OCTT for OCPP 1.6

    ### 关于充电桩OCPP 1.6 测试用例文档(OCTT) #### 引言 本章节简要介绍了关于充电桩对接桩运营平台系统OCPP 1.6 Json协议测试用例文档的相关背景和目的。 ##### 关于文档 本文档旨在详细描述使用OCPP合规性...

Global site tag (gtag.js) - Google Analytics