Escapen in Scheme < Scheme < Programmiersprachen < Praxis < Informatik < Vorhilfe
|
Status: |
(Frage) überfällig | Datum: | 00:00 Mo 14.01.2008 | Autor: | alge |
Aufgabe | Es soll ein Scheme-Programm geschrieben werden, dass in einer LaTeX-Eingabedatei die Wörter, die Zeichen und die Leerzeichen zählt. |
Hallo zusammen...
Prinzipiell kein Problem, wenn die Sache mit dem Escapen nicht wäre. In einer LaTeX-Eingabedatei wimmelt es zwingend von "" und \ . Wie kriege ich es hin, daß eine Funktion den Text eingegeben kriegt und automatisch die Sonderzeichen escapet, so daß ein String daraus wird, mit dem Scheme etwas anfangen kann?
Die sonstigen nötigen Prozeduren habe ich:
; white-space-count: list(string) -> number
(define white-space-count (lambda (l)
(cond
((empty? l) 0)
((string=? (first l) " ") (+ 1 (white-space-count (rest l))))
(else (white-space-count (rest l))))))
; char-count: list(string) -> number
(define char-count (lambda (l)
(- (length l) (white-space-count l))))
; zählt die Wörter einer Liste von Strings
; ein Wort wird immer dann gezählt, wenn auf ein Zeichen ein Leerzeichen folgt.
; word-count: list(string) -> number
(define word-count (lambda (l)
(cond
((empty? l) 0)
((string=? (first l) " ") (word-count (rest l)))
(else (helper (rest l))))))
; helper: list(string) -> f number (list(string) -> number)
(define helper (lambda (li)
(cond
((or (empty? li) (string=? (first li) " ")) (+ 1 (word-count li)))
(else (word-count li)))))
; text-count: string -> string
(define text-count (lambda (t)
(let* ((l (string->strings-list t)))
(string-append "Dieser Text enthält " (number->string (word-count l)) " Worte, "
(number->string (char-count l)) " Zeichen und " (number->string (white-space-count l)) " Leerzeichen."))))
Ach ja, das ganze ist in PLT Scheme mit der Erweiterung von:
http://www.deinprogramm.de/dmda/
(und zwar der dmda-372.plt)
geschrieben.
Vielleicht kann mir ja jemand helfen, danke euch!
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 00:34 Do 17.01.2008 | Autor: | matux |
$MATUXTEXT(ueberfaellige_frage)
|
|
|
|