;; 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)) )