#lang racket (require rackunit) ; OPENING EXERCISE ----------------------------------------------------- (define student-grade (/ 248 285)) ; (exact->inexact student-grade) ; writing letter-grade-for with an if expression (define letter-grade-for (lambda (value) 'Z ;; FILL IN THE BLANK )) ; writing letter-grade-for with a cond expression ; ; (define letter-grade-for ; (lambda (value) ; (cond ((>= value 0.90) 'A) ; ((>= value 0.80) 'B) ; ((>= value 0.70) 'C) ; ((>= value 0.60) 'D) ; (else 'F)))) ; tests from the session notes (check-equal? (letter-grade-for student-grade) 'B) (check-equal? (letter-grade-for 0.95) 'A) (check-equal? (letter-grade-for 0.77) 'C) ; Racket also has a case expression that matches exact items ; ; (case (random 6) ; ((0) 'zero) ; ((1) 'one) ; ((2 3 4) 'few) ; (else 'many)) ; THE END -------------------------------------------------------------- ; code I can copy and paste into the function above... ; ; (if (>= value 0.90) ; 'A ; (if (>= value 0.80) ; 'B ; (if (>= value 0.70) ; 'C ; (if (>= value 0.60) ; 'D ; 'F)))) ; REALLY THE END -------------------------------------------------------