Ich versuche, ein Wortzahl-Programm in Scheme zu erstellen. Ich denke, ich habe einen Algorithmus ausgearbeitet, der meine Zeilen, Wörter und Zeichen zählt, aber wenn ich das Programm starte, sagt es mir: "Das Objekt # \ 1 ist nicht anwendbar." "1" ist das erste Zeichen in der Datei, die ich lese, und es sollte unter "sonst" fallen. Alles, was ich sehe, stimmt mit meinem Case-Statement überein, also denke ich, dass ich es richtig mache, aber klar ist irgendwo etwas durcheinander. Danke für Ihre Hilfe!Scheme Fall Fehler
(define files
(lambda (reading n)
(begin
(define in (open-input-file reading))
(let loop ((lines 0)
(words 0)
(chars 0)
(port (read-char in)))
(case (port)
((#\newline)
(loop (+ lines 1) words (+ chars 1) (read-char in)))
((#\space #\tab)
(loop lines (+ words 1) (+ chars 1) (read-char in)))
(else (loop lines words (+ chars 1) (read-char in)))))
(close-input-port in)
(display lines)
(display " ")
(display words)
(display " ")
(display chars)
(newline)
(display "Top ")
(display n)
(display " word(s):")
(newline)
'())))
Beachten Sie, dass ein [Mitbenutzer wurde durch Ihre gelöschte Frage verärgert] (http://meta.stackexchange.com/questions/129578/ Frage-gelöscht-während-Schreiben-Antwort) – sarnold