;; The first three lines of this file were inserted by DrRacket. They record metadata ;; about the language level of this file in a form that our tools can easily process. #reader(lib "htdp-beginner-reader.ss" "lang")((modname 21.2.1) (read-case-sensitive #t) (teachpacks ()) (htdp-settings #(#t constructor repeating-decimal #f #t none #f ()))) ; Worked exercise 21.2.1 ; An employee has three parts: name, id, and salary. ; The name is a string, while id and salary are numbers. (define-struct employee (name id salary)) ; make-employee : string(name) number(id) number(salary) -> employee ; employee-name : employee -> string ; employee-id : employee -> number ; employee-salary : employee -> number ; employee? : anything -> boolean (make-employee "Joe" 348 42995) (make-employee "Mary" 214 49500) (define emp1 (make-employee "Bob" 470 36000)) (define emp2 (make-employee "Chris" 471 41000)) (check-expect (employee-name emp1) "Bob") (check-expect (employee-id emp2) 471) (check-expect (employee-salary emp2) 41000) (check-expect (employee-salary (make-employee "Mary" 214 49500)) 49500) (check-expect (employee? emp1) true) (check-expect (employee? "Mary") false) #| ; function-on-employee : a template for functions that take in an employee (check-expect (function-on-employee emp1) ...) (check-expect (function-on-employee (make-employee "Joe" 348 42995)) ...) (define (function-on-employee emp) ; emp an employee ; (employee-name emp) a string ; (employee-id emp) a number ; (employee-salary emp) a number ... ) ; function-returning-employee : a template for functions that return an employee (check-expect (function-returning-employee ...) emp1) (check-expect (function-returning-employee ...) (make-employee "Joe" 348 42995)) (define (function-returning-employee ...) (make-employee ... ... ...) ; name, id, salary in that order ) |#