Go to the first, previous, next, last section, table of contents.
- primitive: array-map! array0 proc array1 ...
-
array1, ... must have the same number of dimensions as
array0 and have a range for each index which includes the range
for the corresponding index in array0. proc is applied to
each tuple of elements of array1 ... and the result is stored
as the corresponding element in array0. The value returned is
unspecified. The order of application is unspecified.
- primitive: serial-array-map! array0 proc array1 ...
-
Same as array-map!, but guaranteed to apply proc in
row-major order.
- primitive: array-for-each proc array0 ...
-
proc is applied to each tuple of elements of array0 ...
in row-major order. The value returned is unspecified.
- primitive: array-index-map! array proc
-
applies proc to the indices of each element of array in
turn, storing the result in the corresponding element. The value
returned and the order of application are unspecified.
One can implement array-indexes as
(define (array-indexes array)
(let ((ra (apply make-array #f (array-shape array))))
(array-index-map! ra (lambda x x))
ra))
Another example:
(define (apl:index-generator n)
(let ((v (make-uniform-vector n 1)))
(array-index-map! v (lambda (i) i))
v))
Go to the first, previous, next, last section, table of contents.