VECTOR function
authorKen Harris <kengruven@gmail.com>
Fri, 14 Jun 2013 16:50:40 +0000 (09:50 -0700)
committerKen Harris <kengruven@gmail.com>
Fri, 14 Jun 2013 16:50:40 +0000 (09:50 -0700)
src/array.lisp

index 150c70d..b66d87c 100644 (file)
 (defun vectorp (x)
   (and (arrayp x) (null (cdr (array-dimensions x)))))
 
+(defun vector (&rest objects)
+  (let* ((length (length objects))
+        (array (make-array length :element-type t))
+        (i 0))
+    (dolist (element objects array)  ;; poor-man's :initial-contents
+      (aset array i element)
+      (incf i))))
+
 ;;; FIXME: should take optional min-extension.
 ;;; FIXME: should use fill-pointer instead of the absolute end of array
 (defun vector-push-extend (new vector)