получить наибольшее число в списке в схеме

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

(define (getlargest a_list)
  (cond
    ((null? a_list) '())
    ((< (car a_list) (cadr a_list)) (getlargest (cdr a_list)))
    (else (cons (car a_list) (getlargest(cdr a_list))))))