Fix list/vector*->array for 0 dimensions.

Closes #962.
This commit is contained in:
Alex Shinn 2024-05-26 21:54:11 +09:00
parent c200ecb21c
commit f4add6d188
2 changed files with 14 additions and 6 deletions

View file

@ -1816,10 +1816,14 @@
(list*->array 2 '(((a b c) (1 2))))
(list->array (make-interval '#(1 2))
'((a b c) (1 2)))))
;; (test-assert
;; (array-every equal?
;; (list*->array 0 '())
;; (make-array (make-interval '#()) (lambda () '()))))
(test-assert
(array-every equal?
(list*->array 0 '())
(make-array (make-interval '#()) (lambda () '()))))
(test-assert
(array-every equal?
(vector*->array 0 '())
(make-array (make-interval '#()) (lambda () '()))))
(test-error (array-any 1 2))
(test-error (array-any list 1))
(test-error (array-any list

View file

@ -529,7 +529,9 @@
(else
(apply list->array
(make-interval (list->vector (reverse lens)))
(flatten nested-ls (- dimension 1))
(if (zero? dimension)
(list nested-ls)
(flatten nested-ls (- dimension 1)))
o)))))
(define (array->list* a)
@ -576,7 +578,9 @@
(else
(apply list->array
(make-interval (reverse-list->vector lens))
(flatten-vector->list nested-vec (- dimension 1))
(if (zero? dimension)
(list nested-vec)
(flatten-vector->list nested-vec (- dimension 1)))
o)))))
(define (dimensions-compatible? a-domain b-domain axis)