make-array
(make-array dimensions &key initial-element fill-pointer adjustable displaced-to displaced-index-offset)
新しい配列を作成して返します。dimensions はランク 1 のベクタの場合は整数、任意のランクの配列の場合は空でない整数のリストです。:initial-element はすべてのセルを指定した値に設定します。デフォルトは nil です。要素は行優先で格納され、aref を介して O(1) でアクセスできます。配列は同一性 (eq) で比較されるため、異なる 2 つの配列が equal になることはありません。make-array と aref は第一級の関数値ではありません。#'make-array は利用できないため、直接呼び出してください。
:fill-pointer (ランク 1 のみ) はベクタにフィルポインタを与えます。整数はその位置に、t はベクタサイズに設定します。フィルポインタは実効長であり、length や印字はフィルポインタで止まります (aref はストレージ全体にアクセスできます)。vector-push/vector-pop/vector-push-extend が操作するのもこのフィルポインタです。:adjustable は配列を可変長としてマークし、adjustable-array-p がそのまま報告します。可変長配列は adjust-array でその場でリサイズされます。:element-type は受け付けられますが無視されます (要素型は追跡されません。array-element-type は常に t を返します)。
:displaced-to は、ストレージを割り当てる代わりに別の配列のストレージへのビューを構築します。ビューの (行優先の) 要素 i はターゲットの要素 i + offset を読み書きします (:displaced-index-offset のデフォルトは 0)。変更は双方向に見えます。ビューは独自の次元を持ち (ターゲットとランクが異なってもよく、例えば行列の行に対するベクタビューが作れます)、ターゲット内に収まる必要があり、array-displacement で調べられます。displaced ビューは :fill-pointer/:adjustable/:initial-element と併用できず、それ自体を adjust することもできません。