Merge commit '95aeb2ebae' as 'third_party/lisp/alexandria'
This commit is contained in:
commit
0a9a569534
29 changed files with 6252 additions and 0 deletions
18
third_party/lisp/alexandria/arrays.lisp
vendored
Normal file
18
third_party/lisp/alexandria/arrays.lisp
vendored
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
(in-package :alexandria)
|
||||
|
||||
(defun copy-array (array &key (element-type (array-element-type array))
|
||||
(fill-pointer (and (array-has-fill-pointer-p array)
|
||||
(fill-pointer array)))
|
||||
(adjustable (adjustable-array-p array)))
|
||||
"Returns an undisplaced copy of ARRAY, with same fill-pointer and
|
||||
adjustability (if any) as the original, unless overridden by the keyword
|
||||
arguments."
|
||||
(let* ((dimensions (array-dimensions array))
|
||||
(new-array (make-array dimensions
|
||||
:element-type element-type
|
||||
:adjustable adjustable
|
||||
:fill-pointer fill-pointer)))
|
||||
(dotimes (i (array-total-size array))
|
||||
(setf (row-major-aref new-array i)
|
||||
(row-major-aref array i)))
|
||||
new-array))
|
||||
Loading…
Add table
Add a link
Reference in a new issue