(define (min-point points)
(define (min-point-iter p ps)
(if (null? ps)
p
(let ((q (car ps)))
(min-point-iter (cond ((< (point-y q) (point-y p)) q)
((= (point-y q) (point-y p))
(if (< (point-x q) (point-x p))
q))
(else p))
(cdr ps)))))
min-point-iter (car points) (cdr points))