【SICP练习】95 练习2.68

练习2.68

先要导入练习2.67中的sample-tree。这道题要求我们写出能够根据给定的树产生出给定符号的二进制位表的函数encode-symbol,这个函数还要能够在遇到未在树中出现的符号时报错。这个函数将要在给定的树中查找给定符号的叶子节点,并记录下寻找过程中的左右方向,当然了,如书中所说,向左则用0,向右则用1。因此该函数可以如下列出。我们先来写那个检测错误的谓词。

(define (symbol-in-tree? gven-symbol tree)
    (not (false? (find (lambda (s) (eq? s given-symbol))
                     (symbols tree)))))
(define (encode-symbol symbol tree)
   (cond ((leaf? tree) ‘())
         ((symbol-in-tree? symbol (left-branch tree))
          (cons 0 (encode-symbol symbol (left-branch tree))))
         ((symbol-in-tree? symbol (right-branch tree))
          (cons 1 (encode-symbol symbol (right-branch tree))))
         (else
          (error “Error: symbol not in this tree!”))))
如此一来便可以得出encode了。
(define (encode message tree)
    (if (null? message)
      ‘()
       (append (encode-symbol (car message) tree)
                (encode (cdr message) tree))))

通过测试我们发现和上一题中的结果完全符合,如前面所说要导入sample-tree。

(encode ‘( a d a b b c a) sample-tree)
;Value: (0 1 1 0 0 1 0 1 0 1 1 1 0)



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



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


时间: 2024-07-29 01:39:54

【SICP练习】95 练习2.68的相关文章

phpinfo()的小秘密(一个胖子嘴中刁着两支烟!:-) )

用浏览器访问 http://192.168.16.1/phpinfo.php?=PHPE9568F36-D428-11d2-A769-00AA001ACF42 你将看到! 一个胖子嘴中刁着两支烟!:-) 秘密在logos.h中用数组定义的图像数据. unsigned char php_egg_logo[] = { 71, 73, 70, 56, 57, 97, 130, 0, 67, 0, 213, 255, 0, 0, 0, 0, 152, 138, 142, 104, 95, 105, 89

php4的彩蛋_php基础

今天看了一些代码,看到了一个小彩蛋. <? /* env.php */ phpinfo(); ?> 用浏览器访问 http://ipaddress/dirname/env.php?=PHPE9568F36-D428-11d2-A769-00AA001ACF42 你将看到!    一个胖子嘴中刁着两支烟!:-) 秘密在logos.h中用数组定义的图像数据. unsigned char php_egg_logo[] = {      71, 73, 70, 56, 57, 97, 130,  0,

PostgreSQL 线性回归 - 股价预测 1

本文是一个简单的一元线性回归的例子, 需要了解相关理论知识可参考 : http://blog.163.com/digoal@126/blog/static/163877040201523112651593/ 数据来自股票的收盘价. 如果要做多元分析, 请自行增加维度(例如大盘指数,成交量,最低,最高价,价格区间等等都可以那里做回归计算), 计算期望值. 例子如下 : 按实际顺序录入test, 如时间从小到大, ID从小到大, 最终目标是用前一个值预测下一个值 第一条记录是最老的值, 最后一条记录

低碳时代的中国能源战略转型

能源的转型是国家经济转型的关键环节,也是社会进步的重要标志.实现低碳化的.有序的能源结构是中国能源战略定位的根本. 我国的能源效率低.污染严重,在某种程度上并非由于技术力量不足,而是由于体制不合理和市场机制不完善所造成的.技术创新支持产业发展的制度性轨道缺失,使得大量高效清洁的能源技术得不到普遍采用. 能源既是"工业的粮食"甚或"现代工业的血液",但却持续释放着巨大的外部性影响.能源对环境造成的巨大影响,远甚于其他产业.在我国,煤炭工业.石油.火电等传统能源的开发和

【SICP练习】137 练习3.68

练习3-68 原文 Exercise 3.68. Louis Reasoner thinks that building a stream of pairs from three parts is unnecessarily complicated. Instead of separating the pair (S0,T0) from the rest of the pairs in the first row, he proposes to work with the whole first

蚂蚁金服漆远谈大数据智能:有95%智能客服

月8日下午消息,在2016中国(杭州)"互联网+"金融大会,蚂蚁金服首席数据科学家漆远从智能客服.农村金融以及保险业务等方面介绍了蚂蚁金服的大数据智能. 漆远表示,数据已经逐步成为商业的核心价值,大数据智能应用已经从支付扩展到金融的全链条,帮助蚂蚁金服在支付.贷款.征信.保险.财富等方面全面推动小.确.幸的金融普惠. 据漆远介绍,人工智能包括深度机器学习.语音识别.图像识别等,具有广泛覆盖.随时随需.精准匹配.风险可控等特点,可以低成本.个性化,更好的服务小微企业和个人消费者. 芝麻信

央行公布了第四批支付牌照名单,有95家公司新获批通过,是央行发牌数量最多的一次

央行通过了<非金融机构支付服务管理办法>(以下简称央行2号令),并通告相关企业进行支付业务许可申办.经过一年的严密审查核准,央行于2011年5月开始陆续发放支付牌照,截至今年第四批发放结束,已有196家企业获得<非金融机构支付业务许可证>,其中业务类型涵盖了预付卡发行与受理.互联网支付.货币汇兑.移动电话支付.固定电话支付.数字电视支付和银行卡收单,其中预付卡业务尤其受到央行关注. 新兴行业面临严格监管 据悉,在获牌的196家企业中,仅有十家企业获得全国性预付卡发行与受理业务许可(

创业板68位公司高管上亿 22位高管资产超10亿

马上迎来上市公司年报收官的日子了,这也预示着上市公司对09年的业绩披露报告基本结束.70家创业板公司,从2010年1月26日同花顺第一家发布09年年报至今已经有58家公司交出了09年的答卷.盘点创业板公司09年的辉煌,公司的高成长性在被高度关注的同时,股东们的收益同样也被投资者所关注,被称为造富工具的创业板究竟造就出多少个亿万富翁,证券日报统计中发现,截止到4月27日,账面财富超过10亿元以上的高管有22个,账面财富在1亿元-10亿元的高管有68个.其中,万邦达的王飘扬成为创业板中的首富.前5名

创业板22位公司高管资产超10亿68位高管超亿

□ 本报记者 夏 芳 马上迎来上市公司年报收官的日子了,这也预示着上市公司对09年的业绩披露报告基本结束.70家创业板公司,从2010年1月26日同花顺第一家发布09年年报至今已经有58家公司交出了09年的答卷.盘点创业板公司09年的辉煌,公司的高成长性在被高度关注的同时,股东们的收益同样也被投资者所关注,被称为造富工具的创业板究竟造就出多少个亿万富翁,证券日报统计中发现,截止到4月27日,账面财富超过10亿元以上的高管有22个,账面财富在1亿元-10亿元的高管有68个.其中,万邦达的王飘扬成为