Seite 2 von 2

Re: Umkehrung eines Wortes

Verfasst: Montag 6. Juni 2011, 09:07
von snafu
EyDu hat geschrieben:Wenn der Interpreter nicht gut genug ist selbst einfachste Endrekursionen aufzulösen, dann ist das kein Problem von Rekusionen, sondern ein Problem des Interpreters.
Trotzdem wird man sich ja wohl an die Implementierung anpassen müssen, wenn diese nicht für tiefe Rekursion optimiert wurde.

Unabhängig davon will die Aufgabe ja hier offenbar ausdrücklich, dass Rekursion verwendet wird. Von daher erübrigt sich die Frage wohl. Bevor es gar keine Punkte gibt, würde ich eher gemäß Aufgabenstellung arbeiten und evtl anmerken, dass es auch anders ginge.

Re: Umkehrung eines Wortes

Verfasst: Montag 6. Juni 2011, 09:09
von BlackJack
@EyDu: Nur sind viele Sprachen so ”schlecht” das nicht zu können. Und wenn man die Realität ignoriert und trotzdem das angeblich elegantere bei solchen Sprachen verwendet, sitzt das Problem wieder vor dem Rechner.

Re: Umkehrung eines Wortes

Verfasst: Montag 6. Juni 2011, 14:06
von pillmuncher
Man kann sich tail calls natürlich auch selber bauen:

Code: Alles auswählen

from the_link_above import bouncy, throw, land, trampoline

@bouncy
def rev(s, acc=''):
    if s:
        return rev(s[:-1], acc + s[-1])
    return throw(land, acc)

s = 'hallo' * 10000
for r in trampoline(rev, s):
    print r