Discussion:
[gambit-list] Updated fork of SRFI 122, Nonempty Intervals and Generalized Arrays
Bradley Lucier
2018-10-27 20:29:06 UTC
Permalink
I maintain a fork of SRFI 122

https://github.com/gambiteer/srfi-122/

where I've added a few things that were not in the finalized SRFI,
specifically the routines

interval-cartesian-product
array-outer-product
array-assign!

I continue to think about arrays and how to use them. I'd like to get
various implementations and applications of SRFI-122 available (beyond
what I use it for) and when it looks like I don't have anything more to
add I might propose an updated SRFI with the new routines.

In that vein, if anyone would like assistance to modify SRFI-122 to run
in their favorite scheme, or to use SRFI-122 in support of their
application, I'd be glad to help.

Brad
Bradley Lucier
2018-11-16 19:25:18 UTC
Permalink
Post by Bradley Lucier
I maintain a fork of SRFI 122
https://github.com/gambiteer/srfi-122/
where I've added a few things that were not in the finalized SRFI,
specifically the routines
interval-cartesian-product
array-outer-product
array-assign!
I've added another update that implements and documents

array-tile

The implementation also has a bug fix for array-every and array-any
(that hits only for two-, three-, and four-dimensional arrays whose last
array dimension has sidelength one, so it was missed in previous
testing, sorry). The new code is in

(macro-make-predicates)

I plan to send a fix for this one implementation problem for addition to
SRFI-122.

Brad
John Cowan
2018-10-28 00:15:39 UTC
Permalink
Just a heads-up that I intend to propose SRFI 122 to become the standard
multidimensional array package of R7RS-large (the alternatives being SRFI
25 and nothing). It'll be voted on as-is, but an upwardly compatible SRFI
could replace 122 at a later stage of voting.
Post by Bradley Lucier
I maintain a fork of SRFI 122
https://github.com/gambiteer/srfi-122/
where I've added a few things that were not in the finalized SRFI,
specifically the routines
interval-cartesian-product
array-outer-product
array-assign!
I continue to think about arrays and how to use them. I'd like to get
various implementations and applications of SRFI-122 available (beyond
what I use it for) and when it looks like I don't have anything more to
add I might propose an updated SRFI with the new routines.
In that vein, if anyone would like assistance to modify SRFI-122 to run
in their favorite scheme, or to use SRFI-122 in support of their
application, I'd be glad to help.
Brad
Per Bothner
2018-10-28 15:48:32 UTC
Permalink
Just a heads-up that I intend to propose SRFI 122 to become the standard multidimensional array package of R7RS-large (the alternatives being SRFI 25 and nothing).  It'll be voted on as-is, but an upwardly compatible SRFI could replace 122 at a later stage of voting.
For what it is worth, Kawa's arrays are an extension of SRFI 25 and SRFI 4 (uniform vectors),
including some additions from Racket's math.array package.

https://www.gnu.org/software/kawa/Arrays.html

Kawa treats regular vectors, uniform vectors, strings, and bytevectors as rank-1 arrays.
Thus they can be inputs to array-transform and share-array.
--
--Per Bothner
***@bothner.com http://per.bothner.com/
John Cowan
2018-10-28 18:08:49 UTC
Permalink
By all means write it up as a SRFI, then, and I'll add it to the ballot,
even though we'll be voting before it can be finalized. There is precedent
for this, as long as there is a spec to work from. Arthur is letting specs
be posted without implementation these days, though not finalized without
implementation.
Post by John Cowan
Post by John Cowan
Just a heads-up that I intend to propose SRFI 122 to become the standard
multidimensional array package of R7RS-large (the alternatives being SRFI
25 and nothing). It'll be voted on as-is, but an upwardly compatible SRFI
could replace 122 at a later stage of voting.
For what it is worth, Kawa's arrays are an extension of SRFI 25 and SRFI 4
(uniform vectors),
including some additions from Racket's math.array package.
https://www.gnu.org/software/kawa/Arrays.html
Kawa treats regular vectors, uniform vectors, strings, and bytevectors as rank-1 arrays.
Thus they can be inputs to array-transform and share-array.
--
--Per Bothner
Loading...