Cześć Bartku,
You're exactly right. Methinks the necessary and sufficient definition could be this:
Regardless of its current value, _N_ is assigned the next consecutive natural number every time program control is passed to the top of the DATA step (by the action of the implied loop).
Thus, since at first program control is at the top of the implied loop, 1 is moved to _N_. The next time program control is passed to the top of the implied loop, 2 is moved to _N_, and so forth. Hence, as you have indicated, the program can assign any numeric value to _N_ between two consecutive returns of program control to the top of the DATA step, yet it has no effect on the new value moved to _N_ at the top of the DATA step from the independent internal counter.
Perhaps one could say that an internal equivalent of the statement:
_N_ = monotonic() ;
is executed at the top of the implied loop.
Thanks for the plug 😉.
Pozdrowienia,
Paul D.
... View more