(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-nonempty (car lon) (cdr lon))))) (define largest-in-nonempty (lambda (largest-seen unseen) (if (null? unseen) largest-seen (largest-in-nonempty (max largest-seen (car unseen)) (cdr unseen))))) (largest-in-list '()) (largest-in-list '(3 5 2 4)) (largest-in-list '(-3 -1)) (define make-adder (lambda (m) (lambda (n) (+ n m)))) make-adder (define add5 (make-adder 5)) add5 (add5 6) ((make-adder 5) 6) (((lambda (m) (lambda (n) (+ n m))) 5) 6) (define f (lambda (a b) (+ (* 2 a) b))) (f 6 7) (define a 12) (let ([a 7] [b (+ a 2)]) (+ a b)) a