[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]


Yes, FILLARRAY and LISTARRAY should work for multi-dimensional arrays.
One reason we haven't done this is that Lisp machine arrays are not
stored in the same order as Maclisp arrays.  Probably it would be best
for these functions to operate in the Maclisp-compatible row-major
order rather than the order things are stored in.  Another reason we
haven't done this is that as currently written FILLARRAY is too slow
anyway.  But if written in microcode these functions would probably
operate in storage order, incompatible with Maclisp.  Of course,
for *ARRAY the order doesn't matter since it is storing the same thing
in all locations of the array.  Unless someone has a better idea, we
should implement a function named something like FILL-ARRAY-WITH-SCALAR
or INITIALIZE-ARRAY and have *ARRAY call it.

However, note that it may possibly be the case that what you really want is
MAKE-ARRAY of one of the positive-integer type arrays (ART-1B,
ART-2B, ART-4B, ..., ART-16B).  These arrays do get initialized to zero,
and efficiently, too.  But they won't hold negative numbers.