anubis2k5 hat folgendes geschrieben : |
ich arbeite gerade an einem kleinen Programm, welches mir u.a. die Anzahl der Unterverzeichnisse eines bestimmten Verzeichnis zählen soll. So weit, so gut. Die Procedure funktioniert auch, nur möchte ich diese gerne als Funktion nutzen, sprich einmal aufrufen und dann einen Wert zurück bekommen. Momentan löse ich das ganze mit einer globalen Variable, welcher vorher genullt und Procedure-Intern inkrementiert wird. |
Wenn Du die Anzahl der Unterverzeichnisse
aller (untergeordneter) Hierarchieebenen ermitteln möchtest, so sehe auch ich das nur mit einer globalen Variable lösbar, zumal ich auch nur die rekursive Lösungsmethode für diese Problemstellung kenne. Gut, es gibt theoretische Informatiker, die bewiesen haben, daß sich alles über Funktionen und mithin wohl auch nur lokale, funktionsinterne Variablen lösen läßt. Wüßte ich gern, ob das auch in einem solchen Falle zutrifft bzw. wie es sich hier umsetzen läßt.
anubis2k5 hat folgendes geschrieben : |
Wäre es mit einer "Funktion in einer Funktion" zu realisieren? |
Das bedeutet, den Teufel mit dem Beelzebub auszutreiben. Rekursion besteht doch schon darin und ist so realisierbar, daß eine Funktion sich selbst aufruft. Funktionen mit ähnlichem bzw. gleichen Quellcode (mit Ausnahme der eingebetteten Funktion) im Quelltext hierarchisch zu verknüpfen bedeutet, die Rekursion in den Quellcode zu verpacken, das ist ja schon "Metarekursion". Das mag funktionieren, ist m.E. aber zuviel des Guten bzw. Nötigen, es ist schlichtweg redundant.