diff --git a/scm.mes b/scm.mes index c6b7dda9..e4520e8e 100755 --- a/scm.mes +++ b/scm.mes @@ -104,7 +104,7 @@ (define (vector . rest) (list->vector rest)) (define (make-vector n . x) - (let ((fill (if (pair? x) (cdr x) *unspecified*))) + (let ((fill (if (pair? x) (car x) *unspecified*))) (list->vector (let loop ((n n)) (if (= 0 n) '() (cons fill (loop (- n 1)))))))) diff --git a/test.mes b/test.mes index 98a82c99..c0d6d56d 100644 --- a/test.mes +++ b/test.mes @@ -127,6 +127,9 @@ (pass-if "vector-length" (seq? (vector-length #(1)) 1)) (pass-if "list->vector" (sequal? (list->vector '(a b c)) #(a b c))) (pass-if "vector" (sequal? #(vector 0 1 2) #(vector 0 1 2))) +(when (not guile?) + (pass-if "make-vector" (sequal? (make-vector 3) #(*unspecified* *unspecified* *unspecified*)))) +(pass-if "make-vector 2" (sequal? (make-vector 3 0) #(0 0 0))) (pass-if "vector-ref" (seq? (vector-ref #(0 1) 1) 1)) (when (not guile?) ;; hmm guile segfaults (pass-if "vector-set" (equal? (let ((v #(0 1))) (vector-set! v 1 'q) v) #(0 q)))