array-dimensions
array-dimensions Function
Syntax:
array-dimensions array → dimensions
Arguments and Values:
array—an array.
dimensions—a list of integers.
Description:
Returns a list of the dimensions of array. (If array is a vector with a fill pointer , that fill pointer is ignored.)
Examples:
(array-dimensions (make-array 4)) → (4)
(array-dimensions (make-array ’(2 3))) → (2 3)
(array-dimensions (make-array 4 :fill-pointer 2)) → (4)
Exceptional Situations:
Should signal an error of type type-error if its argument is not an array.
See Also:
array-dimensionExpanded Reference: array-dimensions
Basic Usage
array-dimensions returns a list of the sizes of each dimension of an array.
;; 1D array
(array-dimensions (make-array 5))
=> (5)
;; 2D array
(array-dimensions (make-array '(3 4)))
=> (3 4)
;; 3D array
(array-dimensions (make-array '(2 3 4)))
=> (2 3 4)
Zero-Dimensional Arrays
A zero-dimensional array has no dimensions, so the result is an empty list.
(array-dimensions (make-array '()))
=> NIL
Fill Pointer Is Ignored
The actual allocated size is returned, not the fill pointer.
(array-dimensions (make-array 10 :fill-pointer 3))
=> (10)
Practical Use: Iterating Over Array Dimensions
array-dimensions is useful for writing generic array-processing code.
;; Compute total number of elements from dimensions
(let ((a (make-array '(3 4 5))))
(reduce #'* (array-dimensions a)))
=> 60