老潘已转到http://www.panxingzhi.net/。所有旧文章如有改动,此处将不再更新。谢谢。 I've moved to http://www.panxingzhi.net/. Updates on old posts are not applied here. Thanks.

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 条评论:

添加评论