Нахождение максимального расстояния между двумя точками в списке (схема)

В настоящее время я пытаюсь написать функцию из списка точек, которая возвращает расстояние от точки p до точки в моем списке точек, который находится дальше всего от p. Мой список пунктов следующий:

((2 . 4) (3 . 6) (5 . 12) (-4 . 3) (8.4 . 9) (0 . -1))

Я также сделал несколько абстракций для извлечения общих car и cdr (для облегчения видимости в коде), а также car и cdr самого списка.

(define (get-x p) (car p)
(define (get-y p) (car p)


(define (get-first-point pt-list)
        (get-x pt-list))

(define (get-rest-points pt-list)
        (get-y pt-list))                                                                                         

Я также уже написал обобщенную формулу расстояния, которую я могу использовать для любых двух точек, которые я выберу (имейте в виду, что я абстрагировал car и cdr для get-x и get-y соответственно).

(define (distance a b)
    (if (or (null? a) (null? b))
        0
        (sqrt (+ (expt (- (get-x a)
                          (get-x b))  2) 
                 (expt (- (get-y a) 
                          (get-y b))  2)))))

Теперь, когда у меня есть это, я знаю, что мне нужно сравнить различные расстояния по всему моему набору точек и выбрать максимальное возвращаемое значение. У меня есть частичное решение, но не то, которое подходиткаждый точка.

(define (max-distance p pt-list)
    (if (null? pt-list)
        0
        (max (distance p (get-first-point pt-list)) ; 1
             (distance p (get-first-point (get-rest-points pt-list))) ; 2
             (distance p (get-first-point (get-rest-points (get-rest-points pt-list)))) ; 3
             (distance p (get-first-point (get-rest-points (get-rest-points (get-rest-points pt-list))))) ; 4
             (distance p (get-first-point (get-rest-points (get-rest-points (get-rest-points (get-rest-points pt-list)))))) ; 5
             (distance p (get-first-point (get-rest-points (get-rest-points (get-rest-points (get-rest-points (get-rest-points pt-list))))))) ; 6
    )
)

)

Вы, вероятно, можете понять суть того, что я (ужасно) пытаюсь сделать, но именно поэтому мне нужна помощь.

Ответы на вопрос(3)

Ваш ответ на вопрос