[Forth] nested while loop



  • Hallo!

    Ich lerne gerade Forth und momentan bin ich bei Schleifen angekommen. Ich habe das folgende kleine Programm geschrieben:

    : g 0 begin dup 10 < while 1+ dup . repeat ;
    : f 0 begin dup 10 < while 1+ g repeat ;
    f
    

    Eigentlich sollte es 10 mal "1 2 3 4 5 6 7 8 9 10" ausgeben. Leider funktioniert das nicht, denn es wird nur einmal "1 2 3 4 5 6 7 8 9 10" ausgegeben.
    Wo liegt mein Fehler?

    MfG
    forth'ler



  • Du musst den Zähler wieder von Stack nehmen:

    : g 0 begin dup 10 < while 1+ dup . repeat [b]drop[/b] ;
    : f 0 begin dup 10 < while 1+ g repeat [b]drop[/b] ;
    f
    

Anmelden zum Antworten