Hej... En allmän fråga... Tail Recursion är där det rekursiva anropet sker sist i funktionen..... Sådan rekursion kan optimeras med en vanlig loop istället. Det är ju så att vid funktionsanrop så spars returadressen på stacken. Om det rekursiva anropet sker sist så är det enda som görs när man är på väg upp ur rekursionen att man poppar massa returadresser från stacken... Detta tar tid så dessa kan man optimera bort med loopar istället. ARV kommer stödjas fullt ut i vb.NET .. vad gäller returadresserna anatar jag att VB beter sig som de flesta språk eftersom du måste pusha och poppa adresssen på stacken .. vart skall du annars spara den ??? Du måste ha en return point, det har man även i c/c++ app's.. Jo absolut måste det finnas returadresser. Men om du skriver en funktion i C/C++ som tillämpar rekursion och då tail-Recursion i synnerhet. Kommer den smarta kompilatorn att optimera bort detta och byta ut rekursionen mot en vanlig loop. JUST för att slippa lägga upp återhoppsadresser på en stack som ju tar tid att POPPA när du skall ta dig upp ur rekursionen.tailRecursion
Optimerar VB bort tail recursion där sådan uppstår. Eller exekverar tolken koden i blondo precis som den står uppifrån och ner ?
/peterhSv: tailRecursion
En god C/C++ kompilator fixxar detta så jag undrar om VB-tolken kan göra det jobbet... Men jag gissar att den förmodligen inte gör det.. Men det skullee vara kul att veta....
/peterh
PS... Undrar när vi kommer få möjlighet till ARV i VB ?Sv: tailRecursion
Sv: tailRecursion
/peterh