XLISP-STAT includes support for multidimensional arrays patterned after the Common Lisp standard described in detail in Steele [15]. The functions supported are listed in Section of the appendix.
In addition to the standard Common Lisp array functions XLISP-STAT also includes a number of linear algebra functions such as inverse, solve, transpose, chol-decomp, lu-decomp and sv-decomp. These functions are listed in the appendix as well.
An array is printed using the standard Common Lisp format. For example, a 2 by 3 matrix with rows (1 2 3) and (4 5 6) is printed as
#2A((1 2 3)(4 5 6))The prefix
#2A
indicates that this is a two-dimensional array.
This form is not particularly readable, but it has the advantage that
it can be pasted into expressions and will be read as an array by the
XLISP reader. For
matrices you can use the function print-matrix to get a
slightly more readable representation:
> (print-matrix '#2a((1 2 3)(4 5 6))) #2a( (1 2 3) (4 5 6) ) NIL >
The select function can be used to extract elements or subarrays from an array. If A is a two dimensional array then the expression
(select a 0 1)will return element 1 of row 0 of A. The expression
(select a (list 0 1) (list 0 1))returns the upper left hand corner of A.