3

率直に申し上げておきます。これは宿題です。次のコードは、次のようcountupに呼び出される関数を定義します。

(countup "file1")

ループが無期限に実行されているようです。なぜ、どうすればこれを修正できますか?

(define stats
  (lambda (srcf)
    (begin
      (define in (open-input-file srcf))
      (let loop (
         (l 0)
         (w 0)
         (c 0)
         (char (read-char in)))
       (case char
         ((#\newline)
           (loop (+ l 1) w(+ c 1) (read-char in)))
         ((#\space #\tab)
           (loop l (+ w 1) (+ c 1) (read-char in)))
         (else (loop l w (+ c 1) (read-char in))))
      )
  (close-input-port in)

  (display l)
  (display " ")
  (display w)
  (display " ")
  (display c)
  (newline)
  '()))
)

;; srcf = source text file
(define countup
  (lambda (srcf lstf)
    (stats srcf)
  )
)
4

1 に答える 1