Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;; 5
- ;; A room is:
- ;; (make-room number string number)
- (define-struct room (numbed bed-size base-price))
- ;; Constructor
- ;; make-room: number string number -> room
- ;; Selectors
- ;; room-numbed: room -> number
- ;; room-bed-size: room -> string
- ;; room-base-price: room -> number
- ;; Predicate
- ;; room?: any -> boolean
- ; ;; Template
- ; ;; room-fun: room -> ?
- ; ;; given... produces..
- ; (define (room-fun a-room)
- ; (room-numbed a-room)
- ; (room-bed-size a-room)
- ; (room-base-price a-room))
- ;
- ; (check-expect (room-fun ...) ...)
- ; (check-expect (room-fun ...) ...)
- ; (check-expect (room-fun ...) ...)
- (define RM-119 (make-room 2 "queen" 80))
- (define RM-223 (make-room 1 "king" 100))
- (define RM-334 (make-room 3 "queen" 120))
- (define RM-411 (make-room 2 "queen" 80))
- ;; compute-room-price: room number -> number
- ;; given a room and number of occupants, produces a room price per night
- (define (compute-room-price a-room num-of-occupants)
- (cond
- [(<= num-of-occupants 2) (room-base-price a-room)]
- [else (+ (* 10 (- num-of-occupants 2))
- (room-base-price a-room))]))
- (check-expect (compute-room-price RM-119 2) 80)
- (check-expect (compute-room-price RM-223 3) 110)
- (check-expect (compute-room-price RM-334 4) 140)
Add Comment
Please, Sign In to add comment