status: *final* (2016-12-24)

keywords: Data Structure

See also SRFI 164: Enhanced multi-dimensional Arrays and SRFI 179: Nonempty Intervals and Generalized Arrays (Updated).- The SRFI Document
- Discussion Archive
- Git repo (on Github)
- srfi-122@nospamsrfi.schemers.org (subscribers only)

This SRFI specifies an array mechanism for
Scheme. Arrays as defined here are quite general; at their most basic, an
array is simply a mapping, or function, from multi-indices of exact
integers $i_0,\ldots,i_{d-1}$ to Scheme values. The set of multi-indices
$i_0,\ldots,i_{d-1}$ that are valid for a given array form the
*domain* of the array. In this SRFI, each array's domain consists of
a rectangular interval
$[l_0,u_0)\times[l_1,u_1)\times\cdots\times[l_{d-1},u_{d-1})$, a subset
of $\mathbb Z^d$, $d$-tuples of integers. Thus, we introduce a data type
called *intervals*, which encapsulate the cross product of nonempty
intervals of exact integers. Specialized variants of arrays are specified
to provide portable programs with efficient representations for common
use cases.