(define letter-to-number (lambda (letter) (if (eq? letter 'A) 4.0 (if (eq? letter 'B+) 3.5 3.0)))) (letter-to-number 'A) (letter-to-number 'B+) (letter-to-number 'B) (define letter-to-number (lambda (letter) (cond [(eq? letter 'A) 4.0] [(eq? letter 'B+) 3.5] [else 3.0]))) (define letter-to-number (lambda (letter) (case letter [(A) 4.0] [(B+) 3.5] [else 3.0]))) (define largest-in-list (lambda (lon) (if (null? lon) (errorf 'largest-in-list "empty list") (largest-in-non-empty (car lon)(cdr lon))))) (define largest-in-non-empty (lambda (largest-so-far unseen) (if (null? unseen) largest-so-far (largest-in-non-empty (max largest-so-far (car unseen)) (cdr unseen))))) (largest-in-list '()) (largest-in-list '(-3 -1)) (largest-in-list '(1 5 3 2 0)) (define make-adder (lambda (n) (lambda (m) (+ m n)))) (define add5 (make-adder 5)) add5 (add5 6) ((make-adder 5) 6) (((lambda (n) (lambda (m) (+ m n))) 5) 6) (positives '(3 -1 2 6 -7 0 9 2) --> (3 2 6 9 2)