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))))
(
subscriptsarray-dimensions a)))) (