Guest User

Untitled

a guest
Apr 23rd, 2018
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.25 KB | None | 0 0
  1. ;; 5
  2. ;; A room is:
  3. ;; (make-room number string number)
  4. (define-struct room (numbed bed-size base-price))
  5.  
  6. ;; Constructor
  7. ;; make-room: number string number -> room
  8.  
  9. ;; Selectors
  10. ;; room-numbed: room -> number
  11. ;; room-bed-size: room -> string
  12. ;; room-base-price: room -> number
  13.  
  14. ;; Predicate
  15. ;; room?: any -> boolean
  16.  
  17. ; ;; Template
  18. ; ;; room-fun: room -> ?
  19. ; ;; given... produces..
  20. ; (define (room-fun a-room)
  21. ; (room-numbed a-room)
  22. ; (room-bed-size a-room)
  23. ; (room-base-price a-room))
  24. ;
  25. ; (check-expect (room-fun ...) ...)
  26. ; (check-expect (room-fun ...) ...)
  27. ; (check-expect (room-fun ...) ...)
  28.  
  29.  
  30. (define RM-119 (make-room 2 "queen" 80))
  31. (define RM-223 (make-room 1 "king" 100))
  32. (define RM-334 (make-room 3 "queen" 120))
  33. (define RM-411 (make-room 2 "queen" 80))
  34.  
  35. ;; compute-room-price: room number -> number
  36. ;; given a room and number of occupants, produces a room price per night
  37. (define (compute-room-price a-room num-of-occupants)
  38. (cond
  39. [(<= num-of-occupants 2) (room-base-price a-room)]
  40. [else (+ (* 10 (- num-of-occupants 2))
  41. (room-base-price a-room))]))
  42.  
  43. (check-expect (compute-room-price RM-119 2) 80)
  44. (check-expect (compute-room-price RM-223 3) 110)
  45. (check-expect (compute-room-price RM-334 4) 140)
Add Comment
Please, Sign In to add comment