`array-range`, and also a macro for vectorizing operations, called

`vectorize`:

(let ((a #(1d0 2d0 3d0)) (b #(4d0 5d0 6d0)) (c 0.25d0)) (vectorize (a b) (+ a b c 0.25))) ; => #(5.5d0 7.5d0 9.5d0)

`(vectorize (&rest vectors) expression)`sets up symbol macros so that vector names in

`vectors`refer to the appropriate element, then evaluates

`expression`repeatedly and returns the results as a vector. It also has two keyword arguments:

`result-element-type`(which default to

`'double-float`) determines the element type of this vector, while

`into`places the results in one of the vectors instead (of course the two arguments are mutually exclusive).

(let ((a (vector 1 2 3))) (vectorize (a) (+ 1 (* a 2)) :into a) a) ; => #(3 5 7)Functions in the new package still strive to create arrays that are foreign-friendly.