Я не понимаю, почему у меня функция получения наибольшего числа не хочет работать. Если я правильно думаю об этом, если первый атом меньше второго атома, вы вызываете функцию минус первый в списке, иначе вы создаете первый атом, самый большой, с остальной частью списка. соответствующий код:
(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))))))
max
довольно легко реализовать с точки зрения SRFI 1reduce
:(define (max . items) (reduce (lambda (a b) (if (> a b) a b)) #f items))
25.11.2014apply
где-то в своем последнем абзаце.... 25.11.2014