;; The first three lines of this file were inserted by DrScheme. 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 16.1.1) (read-case-sensitive #t) (teachpacks ((lib "testing.ss" "teachpack" "htdp"))) (htdp-settings #8(#t constructor repeating-decimal #f #t none #f ((lib "testing.ss" "teachpack" "htdp"))))) ;Worked exercise 16.1.1 ; A person has a first and last name (both strings) and an age (a number) (define-struct person (first last age)) ; make-person : string(first) string(last) number(age) -> person ; person-first : person -> string ; person-last : person -> string ; person-age : person -> number ; person? : object -> boolean (check-expect (make-person "Joe" "Schmoe" 19) (make-person "Joe" "Schmoe" 19)) (define author (make-person "Stephen" "Bloch" 44)) (define lambda-guy (make-person "Alonzo" "Church" 105)) (check-expect (person-first author) "Stephen") (check-expect (person-last author) "Bloch") (check-expect (person-last lambda-guy) "Church") (check-expect (person-first lambda-guy) "Alonzo") (check-expect (person-first (make-person "Joe" "Schmoe" 19)) "Joe") (check-expect (person-age lambda-guy) 105) (check-expect (person? author) true) (check-expect (person? "Bloch") false) (check-expect (person? (make-person "Joe" "Schmoe" 19)) true) (generate-report)