【SICP练习】150 练习4.6

练习4-6

原文

Exercise 4.6. Let expressions are derived expressions, because
(let (( ) … ( )) )
is equivalent to
((lambda ( … ) ) )
Implement a syntactic transformation let->combination that reduces evaluating let expressions to evaluating combinations of the type shown above, and add the appropriate clause to eval to handle let expressions.

分析

这道题需要我们将let表达式转换成相应的表达式。

(let (( ) … ( )) )

从上面的示例我们可以看到在let表达中,假设其为expr,用cdr可以得到(( ) … ( )),然后再用高阶函数map搭配car来取出所有的var。

同样的,如果要取出exp部分,先用cadr,再用高阶函数map搭配cadr。

而body部分用caddr就可以直接求出了。

然后就可以开始写let->combination,其传入一个参数expr。

((lambda ( … ) ) )

根据这段示例代码呢,我们先调用书中第256页的make-lambda来构造前面的一部,这个函数有两个参数parameter和body。

这样一来就全部都完成了,当然了,还需要将let?加入到eval中,在此之前也要定义let?。同样要调用第256页的tagged-list?。那么接下来就是具体的代码咯。

代码

(define (let-vars expr) (map car (cadr expr)))

(define (let-exp expr) (map cadr (cadr expr)))

(define (let-body expr) (caddr expr))

(define (let->combination expr)
  (cons (make-lambda (let-vars expr) (let-body expr))
    (let-exp expr)))

(define (let? expr) (tagged-list? expr 'let))

((let? expr) (eval (let->combination expr) env))



感谢您的访问,希望对您有所帮助。

欢迎大家关注或收藏、评论或点赞。



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


时间: 2024-07-28 15:39:26

【SICP练习】150 练习4.6的相关文章

一位网站被百度K站150天站长的心路历程

自2012年6月底以来,百度持续更换算法和K站,让无数的站长们陷入了挣扎和难以维继的状态.网站被K导致流量骤减,网民的认可度降低.虽然,有些网站不完全依靠百度带来的流量,但是,一旦网站被K仍然会对网站的整体运营造成影响.在此次K站过程中,用户体验是我们经常会看到的字眼,但究竟何谓用户体验,网络的开放性决定了转发内容的合理性,原创的定位很难辨明,当一个小网站的内容被转发到一个大网站时,大网站的内容很快就会被收录,而且权重高,难道能说这篇文章不是小网站的原创内容吗.我相信:百度目前还没有此种技术来解

ERROR 1005 (HY000): Can't create table 'zcxt.tb_asset' (errno: 150)解决

环境 MySQL 5.1 + 命令行工具 问题 建表出现如下错误: ERROR 1005 (HY000): Can't create table 'zcxt.tb_asset' (errno: 150) 解决 1. 是否存 在SQL语法错误: 2. 外键引用的字段是否存在.

SAI日漫风格的人物男女发型150例

  日漫风格的人物男女发型150例,不同的人物不同的发型,表达不同的气质. 各种头部发型装饰任你挑,绝对有你需要的那一款

PowerPoint允许用户最多可以“反悔”150次

  大家都知道单击工具栏的"撤消"按钮可以撤销最近一次操作,但默认情况下Powerpoint最多只能够恢复最近的20次操作.其实PowerPoint允许用户最多可以"反悔"150次:文件>选项>高级>最多可取消操作数.瞬间穿越回过去的感觉有木有

新春版!2017阿里云150款产品和解决方案全向图(1月制)

导语:上周,国际奥林匹克委员会与阿里巴巴集团在瑞士达沃斯联合宣布,阿里巴巴成为"云服务"及"电子商务平台服务"的官方合作伙伴,以及奥林匹克频道的创始合作伙伴,双方达成期限直至2028年的长期合作. 阿里云能为奥运会提供哪些一流的云计算和人工智能技术?下面这张图或能给你答案. 2017阿里云150款产品和解决方案全向图新春版,点击图片可以直接下载打印高清版 聊完奥运,我们这里再聊聊做这张全向图新春版的初衷. 在过去的一年,阿里云保持快速发展,继续巩固领先地位. 这种领

150万买回一辆特斯拉 小伙光出租展览月挣60万

说起特斯拉电动车,相信不少人都听说过,不过要想见到真车并不容易.3月底,常州一个心思活络的80后小伙在朋友的建议下花150万高价购买了一辆特斯拉轿车,然后带着这辆车四处出租展览.如今,他的特斯拉的档期已经排到了6月份,展览.试乘试驾一天的租金少则3万多则6万,这辆车现已参展20多次. 特斯拉成展会香饽饽 流线外形.科幻内饰引市民争相合影 "这个就是特斯拉,来来来,帮我拍一张合影."昨天,http://www.aliyun.com/zixun/aggregation/38845.html

【硅谷连线】惠普CEO惠特曼加薪150万倍 三星有意涉足电动汽车市

中云网每天连线硅谷,呈现最新鲜资讯!这里的"硅谷"指的是国外具有典型性和创新性企业代表. 1. Oculus获新融资 进军消费市场 <http://it.sohu.com/20131222/n392185858.shtml> 12月22日,据科技博客网站venturebeat报道,虚拟现实产品厂商Oculus VR通过新一轮融资募集7500万美元,进军消费产品市场.Oculus VR这轮融资中的领投方是风险投资公司Andreessen Horowitz. 这轮融资将强化Oc

《淘宝网开店 拍摄 修图 设计 装修 实战150招》导读

前言 淘宝网开店 拍摄 修图 设计 装修 实战150招 在信息时代,越来越多的人离不开网络,于是在网上开店做"掌柜"成了很多年 轻人的创业选择.截至2014 年12 月,我国网民规模达6.49 亿人,互联网普及 率为47.9%,较2013 年底提升2.1%:手机网民规模达5.57 亿人,较2013 年 底增加5672 万人.仅2014 年11 月11 日淘宝和天猫的交易额就达571 亿元. 如此诱人的市场让越来越多的人把创业的目光瞄准了网络开店,尤其是一些年轻 人更是视其为就业的另一条

求教php大神,这个应该怎么改啊,输入150号段,和140- 号段,输入会显示错误

问题描述 求教php大神,这个应该怎么改啊,输入150号段,和140- 号段,输入会显示错误 输入150号段,和140- 号段,输入会显示 解决方案 贴出个图,也不说遇到了什么问题,鬼才知道怎么改 解决方案二: 而且你的图都不全,代码右边一半还看不到. 解决方案三: 你看你第5行正则表达式13[0-9]{9}很明显是 13开头,后面跟10个数字,能匹配14.15么?