Seite 2 von 2
Verfasst: 03.04.2005 14:11
von NicTheQuick
Komischerweise funktioniert eine Rekursion aber problemlos.
Code: Alles auswählen
a = 10
Gosub TestGosub
Debug a
End
TestGosub:
a - 1
If a > 1
Gosub TestGosub
EndIf
Return
Verfasst: 03.04.2005 15:08
von Falko
Rekursiv? Dann ist es mit Goto ähnlich.
Code: Alles auswählen
a = 10
Gosub TestGosub
Debug a
End
TestGosub:
Debug a
a - 1
If a > 1
Goto TestGosub
EndIf
Return
Verfasst: 03.04.2005 15:55
von freedimension
Die Rekursion mit Prozeduren zeichnet sich dadurch aus, dass du für jeden Prozeduraufruf "frisch" deklarierte Variablen zur Verfügung hast, dir also Werte rückwirkend auf's Einfachste merken kannst. Das a aus deinem Beispiel wird ja durchweg benutzt.
Versucht einmal mit Gosub eine wirklich nützliche rekursive Funktion zu schreiben! Da musst du alle wichtigen Werte selber auf einen Stack legen und verwalten.
Verfasst: 03.04.2005 16:05
von Kaeru Gaman
freedimension hat geschrieben:Da musst du alle wichtigen Werte selber auf einen Stack legen und verwalten.
sic!

Verfasst: 03.04.2005 16:05
von ts-soft
Die Zeit, die man durch Gosub (UrBefehl aus den 60-ern) spart, die nächsten 50 Jahre addieren, es wird nicht reichen ne Tasse Kaffee zu trinken

Verfasst: 03.04.2005 16:10
von Kaeru Gaman
im endeffekt ist ja GOSUB nix weiter als ein wrapper des ASM-Befehls JumpToSubroutine...
Verfasst: 03.04.2005 18:47
von Falko
Was sind dann wohl die anderen PB-Befehle?

Verfasst: 03.04.2005 18:50
von Kaeru Gaman
die anderen befehle sind mehr oder weniger komplexe ASM-Routinen.
lediglich GOTO und GUSUB entsprechen fast 1:1 ihren ASM-Kollegen.