diff --git a/lib/srfi/231/base.scm b/lib/srfi/231/base.scm index 3405a53d..ef129fbf 100644 --- a/lib/srfi/231/base.scm +++ b/lib/srfi/231/base.scm @@ -475,14 +475,16 @@ adjacent?)) (define (make-specialized-array domain . o) - ;; TODO: init value (let* ((storage (if (pair? o) (car o) generic-storage-class)) - (safe? (if (and (pair? o) (pair? (cdr o))) - (cadr o) + (init-value (if (and (pair? o) (pair? (cdr o))) + (cadr o) + (storage-class-default storage))) + (safe? (if (and (pair? o) (pair? (cdr o)) (pair? (cddr o))) + (car (cddr o)) (specialized-array-default-safe?))) (body ((storage-class-maker storage) (interval-volume domain) - (storage-class-default storage))) + init-value)) (coeffs (default-coeffs domain)) (indexer (coeffs->indexer coeffs domain))) (assert (boolean? safe?))