using an abstract data type
playing with time values
- define class and problem set times
(define class (mk-time 0 55))
(define pset (mk-time 6 0))
- procedure that displays amount of sleeping time left
(define (sleep num-classes num-psets)
(let((c (*time class num-classes))
(p (*time pset num-psets)))
(display-time (-time (-time (mk-time 24 0) p) c)))
- procedure that displays a time
(define (display-time t) (begin (display (hours t))
(display " hours, ")
(display (mins t))
(display " mins")))))
- example
(sleep 3 2) –> displays “9 hours, 15 mins”
(sleep 5 3) –> displays “1 hours, 25 mins”