2015-03-04 16 views
5

Mi piacerebbe scrivere un ciclo while() in Gforth. Sfortunatamente, the only tutorial online non è utile a causa della mancanza di esempi, e gli esempi sui loop contati (quello che non sto cercando) appaiono fondamentalmente diversi.Come scrivere un ciclo while() in Gforth

Quali sono alcuni esempi concreti di come rappresentare qualcosa di simile?

while (x > 3) { print(x); x--; } 

o realmente, solo un modo concreto per rappresentare qualsiasi cosa del tipo:

while (predicate) { expression(s) } 

risposta

5

Il tuo primo pezzo di codice si traduce in:

\ Assuming x is on the top of the stack. 
begin dup 3 > while dup . 1- repeat 

\ Or if x is in memory. 
begin x @ 3 > while x ? -1 x +! repeat 

E la seconda:

begin predicate while expressions repeat