(define (biggest nums) (cond [(empty? (rest nums)) (first nums)] [(> (first nums) (biggest (rest nums))) (first nums)] [else (biggest (rest nums))])) "Examples of biggest:" (biggest (list 3 1 4)) "should be" 4 (biggest (list 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1)) "should be" 22 (biggest (list 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22)) "should be" 22 ;(define (smart-biggest nums) ; (cond [(empty? (rest nums)) (first nums)] ; [(cons? (rest nums)) ; (local [(define champ (smart-biggest (rest nums)))] ; (cond [(> (first nums) champ) (first nums)] ; [else champ]))])) (define (smart-biggest nums) (cond [(empty? (rest nums)) (first nums)] [(cons? (rest nums)) (let [(champ (smart-biggest (rest nums)))] (cond [(> (first nums) champ) (first nums)] [else champ]))])) "Examples of smart-biggest:" (smart-biggest (list 3 1 4)) "should be" 4 (smart-biggest (list 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1)) "should be" 22 (smart-biggest (list 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22)) "should be" 22