Skip to main content

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-dimension

Expanded 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