[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
name an array function
From: |
Daniel Llorens |
Subject: |
name an array function |
Date: |
Mon, 21 Nov 2016 11:32:28 +0100 |
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.
- name an array function,
Daniel Llorens <=
- Re: name an array function, Stefan Israelsson Tampe, 2016/11/21
- Re: name an array function, tomas, 2016/11/21
- Re: name an array function, Daniel Llorens, 2016/11/21
- Re: name an array function, tomas, 2016/11/21
- Re: name an array function, Daniel Llorens, 2016/11/21
- Re: name an array function, tomas, 2016/11/21
- Re: name an array function, Daniel Llorens, 2016/11/23
- Re: name an array function, tomas, 2016/11/23
- Re: name an array function, David Pirotte, 2016/11/23
Re: name an array function, Panicz Maciej Godek, 2016/11/21