#lang racket (define (box x) ;; when the second item to cons is not ;; a list, we have a pair. (cons (λ() x) (λ(y) (set! x y)))) (define (get-val bx) ((car bx))) (define (set-val! bx new-val) ((cdr bx) new-val)) ;; An employee object is represented as a list of ;; 3 setter-getter pairs (define (Employee name position salary) (error "TBD")) (define (get-name emp) (error "TBD")) (define (set-name emp new-name) (error "TBD")) (define (get-position emp) (error "TBD")) (define (set-position emp new-pos) (error "TBD")) (define (get-salary emp) (error "TBD")) (define (set-salary emp new-sal) (error "TBD")) (define prof (Employee "Austin" "Professor" 99999999999999999)) (get-name prof) (get-position prof) (get-salary prof) (set-name prof "Tom the Mighty") (set-position prof "Master of Time and Space") (set-salary prof 12345678) (get-name prof) (get-position prof) (get-salary prof)