Aufgabe 7.5

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

Aufgabe 7.5
Man könnte jetzt da anfangen, mit 10er-Potenzen rumzurechnen, aber eine meiner Meinung nach elegantere Lösung ist die hier:

[CODE](define (spiegel zahl)
(string->number (list->string (reverse (string->list (number->string zahl))))))

(define (palindrom? zahl)
(eq? zahl (spiegel zahl)))[/CODE]


Eine wirklich einfache Lösung und ich glaube, ich würde das Problem auch so lösen.
Ich glaube jedoch, die Aufgabe war dennoch so gedacht, dass wir mit 10er-Potenzen rechnen…
Dazu habe ich aber auch grad keine Lust…


Hier ist meine rekursive, 10-er Potenzen verwendente Lösung:

[CODE](define (Spiegeln Zahl)
(cond ((< Zahl 10) (number->string Zahl))
(else (Spiegel-rek Zahl))))

(define (Spiegel-rek Zahl)
(begin
(string-append (number->string (modulo Zahl 10)) (Spiegeln(/ (- Zahl (modulo Zahl 10)) 10)))
))[/CODE]


Habe heute den Übungsleiter deswegen befragt; auch in der Musterlösung kommt die “elegantere” Version vor. Anscheinend ist es generell erlaubt, alle Bibliotheksfunktionen zu benutzen, wenn in der Angabe nichts Gegenteiliges steht.