ARRAY-DIMENSIONS — 모든 차원의 크기

ARRAY-DIMENSIONS — 모든 차원의 크기

ARRAY-DIMENSIONS는 함수예요. 배열의 모든 차원 크기를 리스트로 돌려줘요. 다차원 배열의 전체 구조를 한눈에 파악하고 싶을 때 써요.

출처: CLHS Function ARRAY-DIMENSIONS

본문

시그니처는 이렇게 생겼어요.

array-dimensions array => dimensions
  • array — 배열.
  • dimensions — 정수들의 리스트.

동작은 이렇습니다. array-dimensionsarray의 차원 크기들을 리스트로 돌려줘요. 배열이 필 포인터를 가진 벡터라면 그 필 포인터는 무시하고 실제 크기를 알려주죠.

(array-dimensions (make-array 4)) => (4)
(array-dimensions (make-array '(2 3))) => (2 3)
(array-dimensions (make-array 4 :fill-pointer 2)) => (4)

첫 번째는 한 축 배열이라 (4)가 나오고, 두 번째는 2×3이라 (2 3)이 돼요. 세 번째 예제가 흥미로운데요, 필 포인터가 2로 설정된 벡터여도 실제 차원 크기인 (4)를 돌려줘요. 필 포인터는 무시된다는 점이 드러나죠.

인자가 배열이 아니면 type-error 타입 오류를 신호해야 해요. 특정 축 하나만 궁금하다면 array-dimension이 더 직접적이에요.