文档章节

【SICP练习】149 练习4.5

NoMasp
 NoMasp
发布于 2015/09/08 21:49
字数 253
阅读 3
收藏 0

练习4-5

原文

Exercise 4.5. Scheme allows an additional syntax for cond clauses, ( => ). If evaluates to a true value, then is evaluated. Its value must be a procedure of one argument; this procedure is then invoked on the value of the , and the result is returned as the value of the cond expression. For example

(cond ((assoc 'b '((a 1) (b 2))) => cadr) (else false))

returns 2. Modify the handling of cond so that it supports this extended syntax.

分析

代码

 (define (extended-cond-syntax? clause) (eq? (cadr clause) '=>)) 
 (define (extended-cond-test clause) (car clause)) 
 (define (extended-cond-recipient clause) (caddr clause)) 
 (define (cond->if expr) (expand-clauses (cond-clauses expr))) 

 (define (expand-clauses clauses) (if (null? clauses) 'false (let ((first (car clauses)) (rest (cdr clauses))) (cond ((cond-else-clause? first) (if (null? rest) (sequence->exp (cond-actions first)) (error "ELSE clause isn't last -- COND->IF" clauses))) ((extended-cond-syntax? first) (make-if (extended-cond-test first) (list (extended-cond-recipient first) (extended-cond-test first)) (expand-clauses rest))) (else (make-if (cond-predicate first) (sequence->exp (cond-actions first)) (expand-clauses rest))))))) 



感谢您的访问,希望对您有所帮助。 欢迎大家关注或收藏、评论或点赞。


为使本文得到斧正和提问,转载请注明出处:
http://blog.csdn.net/nomasp


版权声明:本文为 NoMasp柯于旺 原创文章,未经许可严禁转载!欢迎访问我的博客:http://blog.csdn.net/nomasp

本文转载自:http://blog.csdn.net/nomasp/article/details/44782181

NoMasp
粉丝 7
博文 334
码字总数 0
作品 0
镇江
程序员
私信 提问
使用Axure制作App原型的尺寸设置

想用Axure设计一个 APP原型 放到真实的移动设备中演示,但不知道应该使用什么尺寸? 这里直接给大家提供一个常用的移动设备尺寸列表,制作原型时根据查询的尺寸在axure中设置大小即可,设计完...

newthink
2017/04/25
0
0
使用Axure制作App原型应该怎样设置尺寸?

使用Axure制作App原型应该怎样设置尺寸? Just Normal2015-08-30142 阅读 设计Axure原型设计 最近有几位小伙伴儿都提出同样一个疑问: 想用Axure设计一个 APP原型 放到真实的移动设备中演示,...

Just Normal
2015/08/30
0
0
【书坊11月赠书福利——第二期】《“笨办法”学Python》 (第3版)

赠书活动停留了一个月,今天开始正常进行,继续每周都给大家送出最新、最好、最实用的技术书。 本周赠品 本周,微信君给大家推荐@人民邮电出版社-信息技术分社 刚刚上架的新书《“笨办法”学...

生气的散人
2014/11/18
294
0
1017学习总结4天,心急没用,专。类和实例

1、学习4节,学习4.5小时 2、仰卧起坐150 100% 3、知乎 0 今日累计学习3小时20分钟 6:40—7:20 8:10—8:50(其中25分钟在写总结) 10:20—1:00(一直在学习类和实例,封装,方法) 自己的心态一直...

夜希辰
2018/10/18
0
0
UG编程造型、画图、建模必备,数控编程学习手册!(3)

     咳咳咳~本文位4.5曲线编程全章内容,继续承接上一篇,宝宝们,没跟上节奏的往上翻文章哦!                                    ----文章为莫莫原创---- ...

UG数控编程
2018/05/31
0
0

没有更多内容

加载失败,请刷新页面

加载更多

哪些情况下适合使用云服务器?

我们一直在说云服务器价格适中,具备弹性扩展机制,适合部署中小规模的网站或应用。那么云服务器到底适用于哪些情况呢?如果您需要经常原始计算能力,那么使用独立服务器就能满足需求,因为他...

云漫网络Ruan
50分钟前
3
0
Kafka 2.3 Producer (0.9以后版本适用)

kafka0.9版本以后用java重新编写了producer,废除了原来scala编写的版本。 这里直接使用最新2.3版本,0.9以后的版本都适用。 注意引用的包为:org.apache.kafka.clients.producer import ja...

实时计算
59分钟前
3
0
Java 中的 String 有没有长度限制

转载: https://juejin.im/post/5d53653f5188257315539f9a String是Java中很重要的一个数据类型,除了基本数据类型以外,String是被使用的最广泛的了,但是,关于String,其实还是有很多东西...

低至一折起
今天
14
0
OpenStack 简介和几种安装方式总结

OpenStack :是一个由NASA和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目。项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。OpenSta...

小海bug
昨天
11
0
DDD(五)

1、引言 之前学习了解了DDD中实体这一概念,那么接下来需要了解的就是值对象、唯一标识。值对象,值就是数字1、2、3,字符串“1”,“2”,“3”,值时对象的特征,对象是一个事物的具体描述...

MrYuZixian
昨天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部