S-99-40


(define (range-primes from to)

  (filter prime? (range from to)))

(define (goldbach num)

  (let iter ((from (range-primes 1 num)))
    (cond
     ((null? from) (list num))
     ((prime? (- num (car from)))
      (list (car from) (- num (car from))))

(else (iter (cdr from))))))