This chapter describes Guile’s compound data types. By compound we mean that the primary purpose of these data types is to act as containers for other kinds of data (including other compound objects). For instance, a (non-uniform) vector with length 5 is a container that can hold five arbitrary Scheme objects.
The various kinds of container object differ from each other in how their memory is allocated, how they are indexed, and how particular values can be looked up within them.
|• Pairs:||Scheme’s basic building block.|
|• Lists:||Special list functions supported by Guile.|
|• Vectors:||One-dimensional arrays of Scheme objects.|
|• Bit Vectors:||Vectors of bits.|
|• Arrays:||Matrices, etc.|
|• VLists:||Vector-like lists.|
|• Record Overview:||Walking through the maze of record APIs.|
|• SRFI-9 Records:||The standard, recommended record API.|
|• Records:||Guile’s historical record API.|
|• Structures:||Low-level record representation.|
|• Dictionary Types:||About dictionary types in general.|
|• Association Lists:||List-based dictionaries.|
|• VHashes:||VList-based dictionaries.|
|• Hash Tables:||Table-based dictionaries.|