Previous: srfi ralists spec repre, Up: srfi ralists spec [Index]
Random–access pairs must be disjoint from all other base types with the possible exception of (linear–access) pairs.
The external representation of random–access pairs is unspecified. The
behavior of equal?
when given a random–access pair and a
sequential–access pair is unspecified in implementations with disjoint
representations.
The behavior of eq?
and eqv?
on random–access pairs must
be the same as that for pairs, vectors, or records. Namely, two
random–access pair objects are eq?
if and only if they are
eqv?
, and they are eqv?
if and only if they refer to the
same location in the store.
All argument checking for each operation must be done within the time bounds given for that operation.
Implementations are encouraged, but not required, to support random–access pairs and lists as their primary pair and list representation. In such an implementation, the external representation of random–access pairs and list should be as described in section 4.3.2 (Pairs and lists) of R6RS, the behavior of equivalence predicates on random–access pairs should be as described in section 11.5 (Equivalence predicates) of R6RS, and so on. In short, all pairs should be random–access pairs.
Implementations supporting SRFI Libraries [4] and SRFI-101 must provide the following libraries:
(srfi :101) ; Composite libraries (srfi :101 random-access-lists) (srfi :101 random-access-lists procedures) ; Procedures only (srfi :101 random-access-lists syntax) ; Syntax only