diff --git a/lib/srfi/231/test.sld b/lib/srfi/231/test.sld index 45915e83..66862995 100644 --- a/lib/srfi/231/test.sld +++ b/lib/srfi/231/test.sld @@ -2558,6 +2558,9 @@ (array->vector* (make-array (make-interval '#(0 0)) error))) (test '#(#() #()) (array->vector* (make-array (make-interval '#(2 0)) error))) + + (test (list->array (make-interval '#(2 3)) '(a b c 1 2 3)) + (vector*->array 2 '#(#(a b c) #(1 2 3)))) ) (test-group "permutation tests" diff --git a/lib/srfi/231/transforms.scm b/lib/srfi/231/transforms.scm index 28419c08..590dc298 100644 --- a/lib/srfi/231/transforms.scm +++ b/lib/srfi/231/transforms.scm @@ -559,9 +559,9 @@ (vector-iota (interval-width domain 0) (interval-lower-bound domain 0))))))) -(define (flatten-vec vec) +(define (flatten-vector->list vec) (if (vector? (vector-ref vec 0)) - (append-map flatten-vec vec) + (append-map flatten-vector->list (vector->list vec)) (vector->list vec))) (define (vector*->array dimension nested-vec . o) @@ -571,8 +571,8 @@ (lp (vector-ref vec 0) (cons (vector-length vec) lens) (- d 1))) (else (apply list->array - (make-interval (list->vector (reverse lens))) - (flatten-vec nested-vec) + (make-interval (reverse-list->vector lens)) + (flatten-vector->list nested-vec) o))))) (define (dimensions-compatible? a-domain b-domain axis)