文档章节

SICP 2.27 2.28 2.29

 代码强国
发布于 2016/08/06 15:28
字数 160
阅读 3
收藏 0

2.27

(define (deep-reverse lst)
  (define (x-reverse l r)
    (cond ((null? l) r)
          ((pair? (car l)) (x-reverse (cdr l) (cons (x-reverse (car l) '()) r)))
          (else (x-reverse (cdr l) (cons (car l) r)))))
  (x-reverse lst '()))

2.28

(define (my-fringe lst)
  (define (x-fringe l res)
    (cond ((pair? l) (x-fringe (car l) (x-fringe (cdr l) res)))
          ((null? l) res)
          (else (cons l res))))
  (x-fringe (car lst) (x-fringe (cdr lst) '())))

2.29

(define (left-branch x) (car x))
(define (right-branch x) (car (cdr x)))
(define (branch-length x) (car x))
(define (branch-structure x) (car (cdr x)))

(define (is-branch? x) (number? (branch-length x)))
(define (total-weight x)
  (if (is-branch? x)
      (branch-structure x)
      (+ (total-weight (left-branch x))
         (total-weight (right-branch x)))))

(define (get-moment x)
  (* (branch-length x) (branch-structure x)))
(define moment-add +)
(define (total-moment x)
  (if (is-branch? x)
      (get-moment x)
      (moment-add (total-moment (left-branch x))
                  (total-moment (right-branch x)))))
(define (mobile-equilibrium? x)
  (if (is-branch? x)
      #t
      (let ((left (left-branch x))
            (right (right-branch x)))
        (if (= (total-moment left) (total-moment right))
            (and (mobile-equilibrium? left)
                 (mobile-equilibrium? right))
            #f))))

 

© 著作权归作者所有

共有 人打赏支持
粉丝 1
博文 46
码字总数 8491
作品 0
深圳
SeaMonkey 2.29 Beta 1 发布,Mozilla 浏览器套件

SeaMonkey 2.29 Beta 1 发布,此版本现已提供免费下载。上一版本 SeaMonkey 2.26.1 之后因为构建架构的技术问题而跳过了 2.27 和 2.28 版本,下一个稳定版本将会是 2.29。 SeaMonkey原来是M...

oschina
2014/08/28
692
6
Xamarin iOS教程之显示和编辑文本

Xamarin iOS教程之显示和编辑文本 Xamarin iOS显示和编辑文本 在一个应用程序中,文字是非常重要的。它就是这些不会说话的设备的嘴巴。通过这些文字,可以很清楚的指定这些应用程序要表达的信...

大学霸
2015/06/17
0
0
iOS 9音频应用播放音频之控制播放速度

iOS 9音频应用播放音频之控制播放速度 iOS 9音频控制播放速度 iOS9音频文件在播放时是以一定的速度进行的。这个速度是可以进行更改的,从而实现iOS9音频文件的快速播放和慢速播放功能。要实现...

大学霸
2015/12/30
417
0
大数据之 Linux:CentOS的安装

先分享一个学习平台,里面有大量的学习资料 欢迎订阅微信公众号:CoXie带你学编程 centos6.8 链接:https://pan.baidu.com/s/1TjCYXzijMzfpiZ9Z-D1Qhg 密码:7mvn 2.1 新建虚拟机 2.2 选中稍...

柯西带你学编程
05/24
0
0
Linux(二)CentOS的安装

centos6.8 链接:https://pan.baidu.com/s/1TjCYXzijMzfpiZ9Z-D1Qhg 密码:7mvn 2.1 新建虚拟机 2.2 选中稍后安装操作系统(先把虚拟机建好先) 2.3 设置此虚拟机安装哪种操作系统 2.4 设置虚...

leeqico
04/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

iOS开发用到的图片尺寸汇总

启动图 型号 竖屏 横屏 iPhone SE 640px × 1136px 1136px × 640px iPhone 6s 750px × 1334px 1334px × 750px iPhone 6s Plus 1242px × 2208px 2208px × 1242px iPhone 7 750px × 1334......

业界小白
24分钟前
0
0
浅谈redis

redis是一个开源,内存式的健值存储数据库,也被称为健值存储的字典服务器。健值类型有字符串,hash(哈希类型),set(集合),list(列表) 和有序集合 特征细节: 内存式:redis将健值存储在主...

拐美人
31分钟前
0
0
无限扩容,按需使用!ZStack推出基于阿里云NAS的文件存储服务

日前,ZStack发布2.6.0版本,正式宣布推出基于阿里云NAS的文件存储服务。得益于业界领先的阿里云分布式存储架构,融合NAS后的ZStack 2.6.0拥有高性能、高可靠、容量无限扩展、一键操作、按需...

ZStack社区版
33分钟前
1
0
崛起于Springboot2.X之Mongodb多数据源处理(35)

多数据源:4个mongodb库! 目录结构图: 1、添加pom依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId>......

木九天
39分钟前
0
0
如何获取显示器的EDID信息

Q1: 为什么要写这篇文章? A1:在最近的工作中遇到了不少问题,其中很多都是和EDID相关的。可以说,作为一家以“显示”为生的企业,我们时时刻刻在与EDID打交道。EDID这东西很简单,但是如果...

DB_Terrill
40分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部