SICP-2.45 solution
两个解法。注意lambda那个是如何等价于define的,尽管我们更习惯于define那个。
(define (split op1 op2)
(define (op painter n)
(if (= n 0)
painter
(let ((smaller (op painter (- n 1))))
(op1 painter (op2 smaller smaller)))))
op)
(define (split op1 op2)
(lambda (painter n)
(if (= n 0)
painter
(let ((smaller ((split op1 op2) painter (- n 1))))
(op1 painter (op2 smaller smaller))))))
0 条评论: