Lisaac prototype interface

Section Header
+ name := TRAVERSABLE[E];
- comment := "A `TRAVERSABLE[E_]' is a finite readable sequence of objects of type E_.";
For instance, `COLLECTION's and `STRING's are `TRAVERSABLE'.
A good performance should always be obtained by sequentially acessing a
`TRAVERSABLE' with increasing indexes (from `lower' to `upper'), as
demonstrated in the following code snippet :
i := a_traversable.lower;
{i > a_traversable.upper}.until_do {
do_something_with (a_traversable.item i);
i := i + 1;
};
Other accessing methods (including random access and sequential access
from `upper' to `lower') may or may not lead to acceptable performance,
depending on the particular implementation of `TRAVERSABLE'.
Section Inherit
- parent_object:OBJECT :=
Section Public
Indexing:
- lower:INTEGER <-
Minimum index.
See also `upper', `valid_index', `item'.
- upper:INTEGER <-
Maximum index.
See also `lower', `valid_index', `item'.
- valid_index i:INTEGER :BOOLEAN <-
True when `i' is valid (i.e., inside actual bounds).
See also `lower', `upper', `item'.
Counting:
- count:INTEGER <-
Number of available indices.
See also `is_empty', `lower', `upper'.
- is_empty:BOOLEAN <-
Is collection empty ?
See also `count'.
Accessing:
- item i:INTEGER :E <-
Item at the corresponding index `i'.
See also `lower', `upper', `valid_index'.
- first:E <-
The very `first' item.
See also `last', `item'.
- last:E <-
The `last' item.
See also `first', `item'.