ich habe mal ne frage.
IN der ersten P klausur kam im Scheme-Teil die aufgabe dran
ein Übersetzter zu machen.. also der deutsche wörter ins englische übersetzt und englische ins deutsche oder so…
kann mir mal wer ssagen wie er das machen würde??
würde mir sehr helfen
meike
(define Wörterbuch '((englisch1 deutsch1) (englisch2 deutsch2) (englisch3 deutsch3)))
(define (translate text akku)
(cond
((null? text) akku)
((assoc (car text) Wörterbuch) (translate (cdr text) (append akku (cdr (assoc (car text) Wörterbuch)))))
(else (translate (cdr text) (append akku '("**timeout**"))))))
(define (übersetzen text)
(translate text '()))
(übersetzen '(englisch1 englisch2 drei englisch3))
Das sollte das Grundgerüst darstellen. Wenn man will kann man ja noch einen Parameter einbauen, der entscheidet, ob das deutsch-englisch oder englisch-deutsch sein soll.
aah ok danke das hilft mir glaub ich weiter… hoffe ich :-)
danke
meike
In der Klausur ging es IIRC nur um einzelne Worte, nicht um ganze Texte.
MoKrates
sähe das dann viel anders aus???
könntest du mir dann vielleicht mal zeigen wie es dann anders wäre?
danke
meike
nun, das uebersetzen eines einzelnen Wortes nimmt in Zaphods prog nur eine Zeile ein.
(define (tans-ein-wort w dic)
(let ((t (assoc w dic)))
(if t (cadr t) #f)))
sollte schon reichen. Wobei, wenn ich mich recht entsinne, die Worterbuecher in der Klausur als eine Liste von Dotted-Pairs aufgefuehrt waren. Da waere dann das "cadr" in meinem Programm durch "cdr" zu ersetzen.
MoKrates
Edit: Weiss man, dass w im dic enthalten ist, so reduziert sich das Prog auf:
(cadr (assoc w dic))
bzw: (cdr (assoc w dic))
aso ok das sieht ja ganz verständlich aus danke :-)