% Function ARRAY-ROW-MAJOR-INDEX
Function ARRAY-ROW-MAJOR-INDEX
array-row-major-index
array &rest
subscripts => index
array - 配列
subscripts - arrayの有効な配列のインデックスのリスト
index - arrayの有効な配列のrow-major
インデックス
subscriptsによって指定されたarrayの要素に対して
row-major
の順序に従った位置を計算し、
arrayの最初の位置から計算された
その要素のオフセットを返却します。
arrayが一次元配列のとき、
array-row-major-index
の返却値ははsubscriptと同じです。
array-row-major-index
はfill-pointerを無視します。
(setq a (make-array '(4 7) :element-type '(unsigned-byte 8)))
(array-row-major-index a 1 2) => 9
(array-row-major-index
(make-array '(2 3 4)
:element-type '(unsigned-byte 8)
:displaced-to a
:displaced-index-offset 4)
0 2 1) => 9
なし。
なし。
なし。
array-row-major-index
の定義は、
エラーチェックをなしにすれば次のように表現することができます
(defun array-row-major-index (a &rest subscripts)
(apply #'+ (maplist #'(lambda (x y)
(* (car x) (apply #'* (cdr y))))
subscripts
(array-dimensions a))))