(define make-point list) (define get-x car) (define get-y cadr) (define (square x) (* x x)) (define (distance x y) (sqrt (+ (square x) (square y)))) (define (pt-distance p) (distance (get-x p) (get-y p))) (define (get-x-coords pts) (map get-x pts)) (define (get-greater-evens pts n) (map get-x (filter (lambda (pt) (let ((x (get-x pt))) (and (> x n) (even? x)))) pts))) (define (get-greater-evens2 pts n) (filter even? (map get-x (filter (lambda (pt) (let ((x (get-x pt))) (> x n))) pts)))) (define pts (list (make-point 1 2) (make-point 2 3) (make-point 3 4) (make-point 4 5)))