|         | The function american-time with helping functions. | Lecture 3 - slide 13 : 42 Program 1 | 
(define (american-time h m s)
  (cond ((< h 0)
           (laml-error "Cannot handle this hour:" h))
        ((and (= h 12) (= m 0) (= s 0))
             "noon")
        ((< h 12)
           (string-append
             (format-hour-minutes-seconds h m s) 
             " " "am"))
        ((= h 12)  
           (string-append
             (format-hour-minutes-seconds h m s) 
             " " "pm"))
        ((and (= h 24) (= m 0) (= s 0))
             "midnight")
        ((<= h 24)
           (string-append 
             (format-hour-minutes-seconds (- h 12) m s) 
             " " "pm"))
        (else
           (laml-error "Cannot handle this hour:" h))))
(define (format-hour-minutes-seconds h m s)
 (string-append
  (zero-pad-string (number->string  h)) ":"
  (zero-pad-string (number->string  m)) ":"
  (zero-pad-string (number->string  s))))
(define (zero-pad-string str)
 (if (= 1 (string-length str))
     (string-append "0" str)
     str))