Uniform Array and vectors are arrays whose elements are all of the same type. Uniform vectors occupy less storage than conventional vectors. Uniform Array procedures also work on vectors, uniform-vectors, bit-vectors, and strings.
prototype arguments in the following procedures are interpreted according to the table:
prototype type printing character #t boolean (bit-vector) b #\a char (string) a integer >0 unsigned integer u integer <0 signed integer e 1.0 float (single precision) s 1/3 double (double precision float) i +i complex (double precision) c () conventional vector
Unshared uniform character 0-based arrays of rank 1 (dimension) are equivalent to (and can't be distinguished from) strings.
(make-uniform-array #\a 3) => "$q2"
Unshared uniform boolean 0-based arrays of rank 1 (dimension) are equivalent to (and can't be distinguished from) section Bit Vectors.
(make-uniform-array #t 3) => #*000 == #b(#f #f #f) => #*000 == #1b(#f #f #f) => #*000
Other uniform vectors are written in a form similar to that of vectors,
except that a single character from the above table is put between
#
and (
. For example, '#e(3 5 9)
returns a uniform
vector of signed integers.
#t
if the obj is an array of type corresponding to
prototype, and #f
if not.
make-uniform-array
.
The optional arguments start and end allow a specified region of a vector (or linearized array) to be read, leaving the remainder of the vector unchanged.
uniform-array-read!
returns the number of objects read.
port-or-fdes may be omitted, in which case it defaults to the value
returned by (current-input-port)
.
The optional arguments start and end allow a specified region of a vector (or linearized array) to be written.
The
number of objects actually written is returned. port-or-fdes may be
omitted, in which case it defaults to the value returned by
(current-output-port)
.
Go to the first, previous, next, last section, table of contents.