anew task-tut.fth : SUM.OF.N.A ( N -- SUM[N] , calculate sum of N integers ) 0 \ starting value of SUM BEGIN OVER 0> \ Is N greater than zero? WHILE OVER + \ add N to sum SWAP 1- SWAP \ decrement N REPEAT SWAP DROP \ get rid on N ; : SUM.OF.N.B ( N -- SUM[N] ) 0 SWAP \ starting value of SUM 1+ 0 \ set indices for DO LOOP ?DO \ safer than DO if N=0 I + LOOP ; : SUM.OF.N.C ( N -- SUM[N] ) 0 \ starting value of SUM BEGIN ( -- N' SUM ) OVER + SWAP 1- SWAP OVER 0< UNTIL SWAP DROP ; : SUM.OF.N.D ( N -- SUM[N] ) >R \ put NUM on return stack 0 \ starting value of SUM BEGIN ( -- SUM ) R@ + \ add num to sum R> 1- DUP >R 0< UNTIL RDROP \ get rid of NUM ; : SUM.OF.N.E { NUM | SUM -- SUM[N] , use return stack } BEGIN NUM +-> SUM \ add NUM to SUM -1 +-> NUM \ decrement NUM NUM 0< UNTIL SUM \ return SUM ; : SUM.OF.N.F ( NUM -- SUM[N] , Gauss' method ) DUP 1+ * 2/ ; : TTT 10 0 DO I SUM.OF.N.A . I SUM.OF.N.B . I SUM.OF.N.C . I SUM.OF.N.D . I SUM.OF.N.E . I SUM.OF.N.F . CR LOOP ; TTT