【SICP练习】79 练习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)))
版權聲明:本文為 NoMasp柯于旺 原創文章,如需轉載請聯系本人。
轉載于:https://www.cnblogs.com/NoMasp/p/4786140.html
總結
以上是生活随笔為你收集整理的【SICP练习】79 练习2.51的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【算法学习笔记】19.算法设计初步 最大
- 下一篇: IOS开发基础知识--碎片8