Diff for /gforth/Attic/gforth.texi between versions 1.2 and 1.4

version 1.2, 1994/06/01 10:05:16 version 1.4, 1994/08/10 17:22:37
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 437  system that only supplies @code{THEN} is Line 437  system that only supplies @code{THEN} is
 : endif   POSTPONE then ; immediate  : endif   POSTPONE then ; immediate
 @end example  @end example
   
   [According to Webster's New Encyclopedic Dictionary, then (adv.) has the
   following meanings: ... 2b: following next after in order ... 3d: as a
   necessary consequence (if you were there, then you saw them). Forth's
   @code{THEN} has the meaning 2b, @code{THEN} in Pascal and many other
   programming languages has the meaning 3d.]
   
 We also provide the words @code{?dup-if} and @code{?dup-not-if}, so you  We also provide the words @code{?dup-if} and @code{?dup-not-if}, so you
 can avoid using @code{?dup}.  can avoid using @code{?dup}.
   
Line 527  index by @var{n} instead of by 1. The lo Line 533  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 547  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
 @var{limit} is crossed. However, @code{S+LOOP} is not part of the ANS  @var{limit} is crossed. However, @code{S+LOOP} is not part of the ANS
 Forth standard.  Forth standard.
   
 The @code{?DO} can be replaced by @code{DO}. @code{DO} enters the loop  @code{?DO} can be replaced by @code{DO}. @code{DO} enters the loop even
 even when the start and the limit value are equal. We do not recommend  when the start and the limit value are equal. We do not recommend using
 using @code{DO}. It will just give you maintenance troubles.  @code{DO}. It will just give you maintenance troubles.
   
 FOR NEXT UNLOOP  FOR NEXT UNLOOP
   

Removed from v.1.2  
changed lines
  Added in v.1.4


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>