Navigating and looping through a series
Navigating through a series is not rocket science, but you have to get used to it. Follow along in the console, and, to really get it, draw some pictures, such as the ones we will show you.
A step at a time – head, tail, index?, and next
The data
word from the previous section is not only a name for the series—it is also a pointer to where we are in the series at a particular moment. You could call that position thecurrent index, which is given by theindex?
function. Right after the series is created, we haveindex? data ;== 1
. Here is a diagram so you can quickly see what is going on:

Note
Remember that in Red, an index starts from 1
, not from 0
, as in most other (C-based) languages.
When the current index is 1
, we are also at the head of the series:
;-- see Chapter05/navigating-and-looping.red:
head? data ;== true
The head data
phrase returns the whole [A B C D]
series, starting from index 1
. The tail always points just beyond the last element of a series...