练习2.52
在这道题上面的文字中就说到了用segments->painter提供线段表,这里的a小题的代码如下:
(segments->painter (list(make-segment (make-vect 0.0 0.0)
(make-vect 1.0 1.0))
(make-segment ......)))
b小题代码如下:
(define (corner-split painter n)
(if (= n 0)
painter
(let ((up (up-split painter (- n 1)))
(right (right-split painter (- n1)))
(corner (corner-split painter (- n1))))
(beside (below painter up)
(below right corner)))))
c小题代码如下:
(define (square-limit painter n)
(let ((combine4 (square-of-four identity flip-horiz)
flip-vect rotate180))
(combine4 (corner-split painter n))))
版权声明:本文为 NoMasp柯于旺 原创文章,未经许可严禁转载!欢迎访问我的博客:http://blog.youkuaiyun.com/nomasp
本文深入解析SICP中的习题2.52,详细介绍了如何使用segments->painter函数绘制线段,以及如何通过递归实现corner-splitpainter和square-limitpainter函数,用于创建复杂的图案。
1641

被折叠的 条评论
为什么被折叠?



