Petite Chez Scheme Version 9.5 Copyright 1984-2017 Cisco Systems, Inc. > (define letter-to-number (lambda (letter) (if (eq? letter 'A) 4.0 (if (eq? letter 'B+) 3.5 3.0)))) > (letter-to-number 'A) 4.0 > (letter-to-number 'B+) 3.5 > (letter-to-number 'B) 3.0 > (define letter-to-number (lambda (letter) (cond [(eq? letter 'A) 4.0] [(eq? letter 'B+) 3.5] [else 3.0]))) > (letter-to-number 'A) 4.0 > (letter-to-number 'B+) 3.5 > (letter-to-number 'B) 3.0 > (define letter-to-number (lambda (letter) (case letter [(A) 4.0] [(B+) 3.5] [else 3]))) > (letter-to-number 'A) 4.0 > (letter-to-number 'B+) 3.5 > (letter-to-number 'B) 3 > (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-so-far rest-of-list) (if (null? rest-of-list) largest-so-far (largest-in-nonempty (max largest-so-far (car rest-of-list)) (cdr rest-of-list))))) > (largest-in-list '()) Exception in largest-in-list: empty list > (define make-adder (lambda (n) (lambda (m) (+ n m)))) > (make-adder 5) # > (define add5 (make-adder 5)) > (add5 6) 11 > ((make-adder 5) 6) 11 > (((lambda (n) (lambda (m) (+ n m))) 5) 6) 11 >