【SICP练习】79 练习2.51



练习2.51

通过书中前面的内容,我们知道below中来将框架分成上下两部分,而beside将框架分成左右两部分。因此,below定义如下:

(define (below painter1 painter2)

(let ((split-point (make-vect 0.0 0.5)))

(let ((paint-top (transform-painter painter2

split-point

(make-vect 1.0 0.5)

(make-vect 0.0 1.0)))

(paint-down (transform-painterpainter1

(make-vect 0.0 0.0)

(make-vect 1.0 0.0)

split-point)))

(lambda (frame)

(paint-top frame)

(paint-down frame)))))

另一种利用上一题中的rotate270等可以很容易的实现:

(define (below painter1 painter2)

(lambda (frame)

((flip-horiz

(rotate90

(beside

(rotate270

(flip-horizpainter1))

(rotate270

(flip-horizpainter2)))))

frame)))

时间: 2024-10-25 22:42:39

【SICP练习】79 练习2.51的相关文章

大数据:从入门到XX(四)

Hadoop Local (Standalone) Mode(单机版)的安装纯粹只是为练手,练完了单机版,下面该练练Pseudo-Distributed Mode(伪分布式版)的安装了.伪分布式是在一台物理机上模拟实现了hadoop的全部功能.包括ssh访问.hdfs格式化.mapReduce执行.yarn资源管理等,伪分布式安装是单机版安装的继续,部分内容依赖于单机版的安装情况. 1.首先确认在redhat6.4上有没有安装SSH. [[email protected] ~]# rpm -qa

iOS开发系列--让你的应用“动”起来

--iOS核心动画 概览 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌.在这里你可以看到iOS中如何使用图层精简非交互式绘图,如何通过核心动画创建基础动画.关键帧动画.动画组.转场动画,如何通过UIView的装饰方法对这些动画操作进行简化等.在今天的文章里您可以看到动画操作在iOS中是如何简单和高效,很多原来想做但是苦于没有思路的动画在iOS中将变得越发简单: CALayer CALayer简介 CALayer常用属性 CALayer绘图 C

SQL中如何检查死锁

编写人:CC阿爸 2014-6-15 在日常SQL数据库的操作中,SQL偶尔会出现表被死锁的问题.比如: 在执行事务时,突然中止事务.系统肯定会锁表. 大批量数据操作时,由于网络 机器性能等相关因素,都会偶尔引起死锁. 这也是SQL没有oracle强大的功能之一. select 标志='死锁的进程', spid,kpid,a.blocked,dbid,uid,loginame,cpu,login_time,open_tran, status,hostname,program_name,hostp

iOS核心动画

iOS开发系列--让你的应用“动”起来 --iOS核心动画 概览 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌.在这里你可以看到iOS中如何使用图层精简非交互式绘图,如何通过核心动画创建基础动画.关键帧动画.动画组.转场动画,如何通过UIView的装饰方法对这些动画操作进行简化等.在今天的文章里您可以看到动画操作在iOS中是如何简单和高效,很多原来想做但是苦于没有思路的动画在iOS中将变得越发简单: CALayer CALayer简介 CAL

scp不可用:WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED

WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! After doing ssh are you seeing this error.No problem it can be solved. [email protected]:/tmp# ssh 10.10.0.16 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOST IDENTIFI

十八、Rsync 远程同步数据

在linux系统下数据备份的工具.Rsync不仅可以远程同步数据(类似于scp [1]),当然还可以本地同步数据(类似于cp),但不同于cp或scp的一点是,rsync不像cp/scp一样会覆盖以前的数据(如果数据已经存在),它会先判断已经存在的数据和新数据有什么不同,只有不同时才会把不同的部分覆盖掉.如果你的linux没有rsync命令请使用 yum install -y rsync 安装. 下面阿铭先举一个例子,然后再详细讲解rsync的用法: [[email protected] ~]#

linux系统日常管理

以下资料来源于<跟阿铭学Linux> 1.监控当前系统状态 1. w查看当前系统的负载 [[email protected] sbin]# w 15:23:46 up 3:34, 2 users, load average: 0.03, 0.05, 0.00 USER TTY FROM [email protected] IDLE JCPU PCPU WHAT root tty1 - 12:26 2:55m 0.11s 0.11s -bash root pts/0 10.72.137.53 1

Android_SVG概述及生成使用SVG详解

1.效果图 2.SVG-Path路径 下面的命令可用于路径数据:M = movetoL = linetoH = horizontal linetoV = vertical linetoC = curvetoS = smooth curvetoQ = quadratic Belzier curveT = smooth quadratic Belzier curvetoA = elliptical ArcZ = closepath注释:以上所有命令均允许小写字母.大写表示绝对定位,小写表示相对定位.

R in action读书笔记(19)第十四章 主成分和因子分析

第十四章:主成分和因子分析 本章内容 主成分分析 探索性因子分析 其他潜变量模型 主成分分析(PCA)是一种数据降维技巧,它能将大量相关变量转化为一组很少的不相关变量,这些无关变量称为主成分.探索性因子分析(EFA)是一系列用来发现一组变量的潜在结构的方法.它通过寻找一组更小的.潜在的或隐藏的结构来解释已观测到的.显式的变量间的关系. PCA与EFA模型间的区别 主成分(PC1和PC2)是观测变量(X1到X5)的线性组合.形成线性组合的权重都是通过最大化各主成分所解释的方差来获得,同时还要保证个