version 1.2, 1994/06/01 10:05:16
|
version 1.3, 1994/06/17 12:35:02
|
Line 177 variable @code{GFORTHPATH}; if this does
|
Line 177 variable @code{GFORTHPATH}; if this does
|
@node Notation, Arithmetic, Words, Words |
@node Notation, Arithmetic, Words, Words |
@section Notation |
@section Notation |
|
|
The Forth words are describes in this section in the glossary notation |
The Forth words are described in this section in the glossary notation |
that has become a de-facto standard for Forth texts, i.e. |
that has become a de-facto standard for Forth texts, i.e. |
|
|
@quotation |
@quotation |
Line 320 theoretically keep floating point number
|
Line 320 theoretically keep floating point number
|
additional difficulty, you don't know how many cells a floating point |
additional difficulty, you don't know how many cells a floating point |
numkber takes. It is reportedly possible to write words in a way that |
numkber takes. It is reportedly possible to write words in a way that |
they work also for a unified stack model, but we do not recommend trying |
they work also for a unified stack model, but we do not recommend trying |
it. Also, a Forth system to keep the local variables on the return |
it. Also, a Forth system is allowed to keep the local variables on the |
stack. This is reasonable, as local variables usually eliminate the need |
return stack. This is reasonable, as local variables usually eliminate |
to use the return stack explicitely. So, if you want to produce a |
the need to use the return stack explicitely. So, if you want to produce |
standard complying program and if you are using local variables in a |
a standard complying program and if you are using local variables in a |
word, forget about return stack manipulations in that word (see the |
word, forget about return stack manipulations in that word (see the |
standard document for the exact rules). |
standard document for the exact rules). |
|
|
Line 417 IF
|
Line 417 IF
|
@var{code} |
@var{code} |
ENDIF |
ENDIF |
@end example |
@end example |
|
or |
@example |
@example |
@var{flag} |
@var{flag} |
IF |
IF |
Line 527 index by @var{n} instead of by 1. The lo
|
Line 527 index by @var{n} instead of by 1. The lo
|
between @var{limit-1} and @var{limit} is crossed. E.g.: |
between @var{limit-1} and @var{limit} is crossed. E.g.: |
|
|
4 0 ?DO i . 2 +LOOP prints 0 2 |
4 0 ?DO i . 2 +LOOP prints 0 2 |
|
|
4 1 ?DO i . 2 +LOOP prints 1 3 |
4 1 ?DO i . 2 +LOOP prints 1 3 |
|
|
The behaviour of @code{@var{n} +LOOP} is peculiar when @var{n} is negative: |
The behaviour of @code{@var{n} +LOOP} is peculiar when @var{n} is negative: |
|
|
-1 0 ?DO i . -1 +LOOP prints 0 -1 |
-1 0 ?DO i . -1 +LOOP prints 0 -1 |
|
|
0 0 ?DO i . -1 +LOOP prints nothing |
0 0 ?DO i . -1 +LOOP prints nothing |
|
|
Therefore we recommend avoiding using @code{@var{n} +LOOP} with negative |
Therefore we recommend avoiding using @code{@var{n} +LOOP} with negative |
Line 539 Therefore we recommend avoiding using @c
|
Line 541 Therefore we recommend avoiding using @c
|
case behaves symmetrical to the positive case: |
case behaves symmetrical to the positive case: |
|
|
-2 0 ?DO i . -1 +LOOP prints 0 -1 |
-2 0 ?DO i . -1 +LOOP prints 0 -1 |
|
|
-1 0 ?DO i . -1 +LOOP prints 0 |
-1 0 ?DO i . -1 +LOOP prints 0 |
|
|
0 0 ?DO i . -1 +LOOP prints nothing |
0 0 ?DO i . -1 +LOOP prints nothing |
|
|
The loop is terminated when the border between @var{limit-sgn(n)} and |
The loop is terminated when the border between @var{limit-sgn(n)} and |