Rekursive Funktionen



  • Hier noch eine Version in einer funktionalen Sprache (das ja keine [globalen] Variablen kennt) - denn das ist nun wirklich ein Allerweltsproblem:

    rev xs = if null xs then xs else rev (tail xs) ++ [head xs]
    

    oder mittels pattern matching

    rev [] = []
    rev (x:xs) = rev xs ++ [x]
    

    (hier mittels Haskell)

    @EOP: Und Jockelx hat dies eben 1:1 nach C++ übersetzt - ganz easy!



  • EOP schrieb:

    Weshalb gibt es denn das Sprachkonstrukt der lokalen static Variablen?

    Ganz sicher nicht, um damit Funktionen zu kreieren, die man nur ein Mal aufrufen kann/darf!



  • SeppJ schrieb:

    EOP schrieb:

    Und Dummköpfe benamse ich solange als Dummköpfe bis das Gegenteil bewiesen ist.

    Dann bist du jetzt ganz offiziell der Forenclown, bis zum Beweis des Gegenteils.

    Na wo ist der Beweis deiner Behautung, daß das ruckzuck geändert werden könnte?
    Bestehe immer noch darauf Dummköpfe als solche zu benennen. Bin mir nicht sicher, ob ich dich in die Lister nicht einrezhe.



  • SeppJ schrieb:

    EOP schrieb:

    Und Dummköpfe benamse ich solange als Dummköpfe bis das Gegenteil bewiesen ist.

    Dann bist du jetzt ganz offiziell der Forenclown, bis zum Beweis des Gegenteils.

    Na wo ist der Beweis deiner Behauptung, daß das ruckzuck geändert werden könnte?
    Bestehe immer noch darauf, Dummköpfe als solche zu benennen. Bin mir noch nicht ganz sicher, ob ich dich in die Liste einreihe oder doch nicht. Au, der war fies.





  • Naja, da würde ich jetzt nicht widersprechen, daß ich ein Narzisst bin.
    Aber meine Sexualpartner und/oder Kinder zu missbrauchen würde ich doch vehement bestreiten.

    Man könnte den string noch nach und nach von hinten nach vorne schreddern bis die Länge Null ist, aber ob das eleganter ist ist eine andere Frage.



  • EOP schrieb:

    Man könnte den string noch nach und nach von hinten nach vorne schreddern bis die Länge Null ist, aber ob das eleganter ist ist eine andere Frage.

    Sofern ich dich richtig verstehe, hat das Dummkopf 'wob' auch schon bereits auf der ersten Seite gesagt.



  • Here you go:

    int main(void)
    {
    string str = "Hello World!";
    
    	if( str.length() )
    		rek_shredder(str);
    	return 0;
    }
    
    void rek_shredder(string str)
    {
    	if( str.length() )
    	{
    			cout << (str.at( str.length() - 1 )  );
    			str.resize( str.length() - 1 ); 
    			rek_shredder(str);
    	}
    
    }
    


  • Jockelx schrieb:

    Sofern ich dich richtig verstehe, hat das Dummkopf 'wob' auch schon bereits auf der ersten Seite gesagt.

    Habe 'wob' nie als Dummkopf bezeichnet. Nur verschiedene Andere, die es auch ehrlich verdient haben.



  • Klassischer Einzeiler:

    std::string r(std::string const& s)
    {
    	return s.size()?r(s.substr(1))+s[0]:s;
    }
    

Anmelden zum Antworten