2008. 6. 3.

연습문제 2.41

(define (unique-treeples n)
  (flatmap
   (lambda (i)
     (flatmap
      (lambda (j)
        (map (lambda (k) (list i j k))
             (enumerate-interval 1 (- j 1))))
      (enumerate-interval 1 (- i 1))))
   (enumerate-interval 1 n)))


(define (sum l)
  (accumulate + 0 l))

(define (sum-of-unique-treeples s n)
  (filter
   (lambda (l)
     (= (sum l) s))
   (unique-treeples n)))

연습문제 2.40

<blockquote>(define (unique-pairs n)
(flatmap
(lambda (i)
(map (lambda (j) (list i j))
(enumerate-interval 1 (- i 1))))
(enumerate-interval 1 n)))</blockquote><blockquote>
(define (prime-sum-pairs2 n)
(map make-pair-sum
(filter prime-sum? (unique-pairs n))))</blockquote>