adjust-array
(adjust-array array new-dimensions &key initial-element fill-pointer)
array を new-dimensions (ベクタなら整数、それ以外は array と同じランクのリスト) にリサイズし、両方の形状で有効な添字位置にある要素を保持します。行列のリサイズでは (i, j) の要素は (i, j) に残り、同じフラット位置には移動しません。新しいセルは :initial-element で埋められます。省略時はその配列の要素型自身のゼロ値になります。これは make-array が値を指定されなかった要素に与える値と同じで、文字配列なら #\Space、宣言された整数幅や浮動小数点型なら 0 または 0.0、要素型 t なら nil です。:adjustable で作成された配列はその場で調整され、引数自身 (eq) が返るため、すべての参照から新しい形状が見えます。それ以外の場合は新しい配列が返ります。いずれの場合も戻り値を使用してください。:fill-pointer を明示しない場合は配列自身のフィルポインタが引き継がれます (新しいサイズに収まらない場合はエラー)。t は新しいサイズ、整数はその位置に設定します。要素型は変更されません。調整不可能な配列を調整して返される新しい配列も、元の配列が保持するよう宣言された要素型を覚えているため、調整後の文字ベクタは引き続き文字列です。displaced な引数はまず un-displace されてから調整されます -- そのビューの現在の内容が自身のストレージになるため、結果の array-displacement は nil と 0 を返します。調整不可能な引数の場合は元の配列自身もそうなります (調整後に元の配列を使い続けた場合の挙動はいずれにせよ未規定だからです)。adjust-array 自体に :displaced-to を指定することと、パックされた整数ベクタの調整はサポートされておらず、エラーを通知します。新しい次元は make-array が自身の次元を検査するのと同じように検査され、拒否された次元は MAKE-ARRAY の名前で報告されます。