All pastes #183394 Raw Edit

Someone

public text v1 · immutable
#183394 ·published 2006-09-26 21:42 UTC
rendered paste body
;; Question 4

(define-struct clock (hour min sec))

(define (addHour clk)
   (cond
    [(and (> (+ (clock-hour clk) 1) 12) (> (+ (clock-min clk) 1) 59) (> (+ (clock-sec clk) 1) 59)) 1]
    [(and (<= (clock-hour clk) 12) (> (+ (clock-min clk) 1) 59) (> (+ (clock-sec clk) 1) 59)) (+ (clock-hour clk) 1)]
    [else (clock-hour clk)]
   )
)

(define (addMin clk)
   (cond
    [(and (> (+ (clock-min clk) 1) 59) (> (+ (clock-sec clk) 1) 59)) 0]
    [(and (<= (clock-min clk) 59) (> (+ (clock-sec clk) 1) 59)) (+ (clock-min clk) 1)]
    [else (clock-min clk)]
   )
)

(define (addSec clk) 
   (cond
    [(>= (clock-sec clk) 59) 0]
    [(<= (+ (clock-sec clk) 1) 59) (+ (clock-sec clk) 1)]
   )
)

(define (tick clk)
  (make-clock (addHour clk) (addMin clk) (addSec clk))
)