Which argument list for array-append, array-stack?
Bradley Lucier 03 Mar 2022 20:41 UTC
Currently the argument list for the new procedures array-stack and
array-append are
array-append [ storage-class [ mutable? [ safe? ] ] ] k array . arrays
and
array-stack [ storage-class [ mutable? [ safe? ] ] ] k array . arrays
This can be parsed, but it is a pain. There are also implementation
limits on the number of arguments. And many procedures keep
[ storage-class [ mutable? [ safe? ] ] ]
as the last three optional arguments.
I was thinking of changing this to
array-append k list-of-arrays [ storage-class [ mutable? [ safe? ] ] ]
array-stack k list-of-arrays [ storage-class [ mutable? [ safe? ] ] ]
which is easier to parse, but which also lines up well with
(define (list->array interval list [...]))
(define (list*->array dimension list* [...]))
(define (vector->array interval vector [...]))
(define (vector*->array dimension vector* [...]))
The caller would have to gather the arrays into a list, though.
I'm also working on
array-block array-of-arrays [ storage-class [ mutable? [ safe? ] ] ]
which is similar to numpy.block, and is a bit more general than an
inverse to array-tile.
Thoughts?
Brad