率直に申し上げておきます。これは宿題です。次のコードは、次のよう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)
)
)