Exercise 2.40

Read Exercise 2.40 ~ Solution


A strange exercise as the book actually shows the code for unique-pairs in the definition of prime-sum-pairs

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

(define (prime-sum-pairs-us n)
  (map make-pair-sum
       (filter prime-sum?
               (unique-pairs n))))

I think as these exercises get more complex I should add at least some test cases or proof that they give the expected answers.

(display (unique-pairs 9))
((2 1) (3 1) (3 2) (4 1) (4 2) (4 3) (5 1) (5 2) (5 3) (5 4) (6 1) (6 2) (6 3) (6 4) (6 5) (7 1) (7 2) (7 3) (7 4) (7 5) (7 6) (8 1) (8 2) (8 3) (8 4) (8 5) (8 6) (8 7) (9 1) (9 2) (9 3) (9 4) (9 5) (9 6) (9 7) (9 8))

(display (prime-sum-pairs 9))
((2 1 3) (3 2 5) (4 1 5) (4 3 7) (5 2 7) (6 1 7) (6 5 11) (7 4 11) (7 6 13) (8 3 11) (8 5 13) (9 2 11) (9 4 13) (9 8 17))

Leave a comment