ADJUSTABLE-ARRAY-P — 배열이 조정 가능한지

ADJUSTABLE-ARRAY-P — 배열이 조정 가능한지

ADJUSTABLE-ARRAY-P는 함수예요. 주어진 배열을 adjust-array로 크기나 차원을 바꿀 수 있는지 확인하는 술어(predicate)예요. 배열을 만들 때 :adjustable t 옵션을 줬는지가 실제 결과를 좌우해요.

출처: CLHS Function ADJUSTABLE-ARRAY-P

본문

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

adjustable-array-p array => generalized-boolean
  • array — 배열.
  • generalized-boolean — generalized boolean(진리값).

동작은 이렇습니다. adjustable-array-padjust-array가 그 배열을 첫 인자로 받았을 때, 그 배열과 identical한 값을 돌려줄 수 있는 경우에만 true를 반환해요. 조정 가능한 배열이면 조정 결과가 원래 배열과 같은 객체가 되거든요.

(adjustable-array-p (make-array 5 :element-type 'character :adjustable t :fill-pointer 3)) => true
(adjustable-array-p (make-array 4)) => implementation-dependent

첫 번째 예제에서 :adjustable t로 만든 배열은 true가 돼요. 반면 두 번째 예제처럼 옵션 없이 만든 배열은 결과가 구현 의존적(implementation-dependent)이라서, 같은 코드도 구현에 따라 true가 될 수도 false가 될 수도 있어요. 그래서 이 함수를 쓸 땐 "조정 가능하리라고 가정하지 말고" 만들어준 옵션을 확인하는 게 안전해요.

관련 함수로는 adjust-array, make-array가 있어요.