array-sub maybe, On Mon, Nov 21, 2016 at 11:32 AM, Daniel Llorens <daniel.llor...@bluewin.ch> wrote:
> > Hello, > > version 2.2 of Guile will (I hope) include rank-polymorphic versions of > array-ref, array-set! and array-for-each. What this means is that instead > of requiring as many indices as the rank of the array, with these functions > you can give fewer indices and get a subarray (a ‘prefix slice’). If you > give all the indices, they behave just as the current versions. > > My original intention was for these functions to replace array-ref and > array-set!. That's how a number of array languages/libraries do it (numpy, > to mention a popular one. You don't need to say A[i, :, :], you can just > say A[i].). However, the maintainers spoke against this, so these functions > need different names. > > The names I chose are array-from, array-amend! and array-for-each-cell. > These names are taken from the J docs (http://www.jsoftware.com/ > help/dictionary/d520.htm, http://www.jsoftware.com/help/ > dictionary/d530n.htm), because the behavior is based on J and I consider > J to be ‘the source’ when it comes to these concepts. > > civodul has proposed array-slice instead of array-from. However, > array-from only returns a slice when the rank of the result would be > positive. wingo has pointed out that it is unusual to have a function name > ending in a preposition. > > What do *you* think should be the names of these functions? > > Thanks, > > lloda > > PS: The justification for these functions is given in the documentation, > but in short: 1) other than the creation of the subarray descriptors, they > don't cost any more than the rank-strict versions, 2) the only way to > reproduce them in current Guile is with make-shared-array, which is very > slow and cumbersome, 3) they recover a functionality that used to be part > of Guile but was removed (‘enclosed arrays’). > > PPS: You can check out the functions at http://git.savannah.gnu.org/ > gitweb/?p=guile.git;a=shortlog;h=refs/heads/lloda-squash1. I rebase this > branch on master periodically. The maintainers have reviewed it, but any > extra reviews would of course be appreciated, especially of the doc. > > >