Are immutable arrays truly immutable?
John Cowan
(03 Jan 2020 18:51 UTC)
|
||
(missing)
|
||
Re: Are immutable arrays truly immutable?
John Cowan
(03 Jan 2020 21:27 UTC)
|
||
Re: Are immutable arrays truly immutable? Bradley Lucier (10 Jan 2020 21:17 UTC)
|
||
Re: Are immutable arrays truly immutable?
Bradley Lucier
(03 Jan 2020 19:00 UTC)
|
Re: Are immutable arrays truly immutable? Bradley Lucier 10 Jan 2020 21:17 UTC
There was already the following statement in the SRFI text: ======================================= Note: If an array does not have a setter, then we call it immutable even though the array's getter might not be a "pure" function, i.e., the value it returns may not depend solely on the arguments passed to the getter. ======================================= Brad On 1/3/20 4:27 PM, John Cowan wrote: > Thanks for the clarification. Perhaps "immutable" should be changed to > "read-only" in the new draft to avoid misleading people. > > On Fri, Jan 3, 2020 at 1:56 PM Bradley Lucier <xxxxxx@purdue.edu > <mailto:xxxxxx@purdue.edu>> wrote: > > You are correct, “immutable” arrays are ones that don’t have a > mutator in the interface (i.e., it is an error to call (array-setter > A)). There is no guarantee that (array-getter A) is a “pure” function. > > Brad > > > On Jan 3, 2020, at 1:51 PM, John Cowan <xxxxxx@ccil.org > <mailto:xxxxxx@ccil.org>> wrote: > > > > I'm writing a non-mathematician's guide to SRFI 122 (partly for > my own benefit), and I'm not clear how immutable arrays are supposed > to work. Is it an error if the getter function is not pure and > functional (i.e. depends on something other than the indices passed)? > > > > For example, suppose you have an array that fetches its elements > lazily from a file. If another process mutates the file, presumably > future element references will get the new values, so that the array > is read-only rather than truly immutable. Is that all right, or is > actual immutability assumed, such that if you break it, you violate > some invariant? > > > > BTW, I am working from > <http://github.com/gambiteer/srfi-122/srfi-122.html rather than the > published SRFI. One may conveniently read this version online at > <https://htmlpreview.github.io/?https://raw.githubusercontent.com/gambiteer/srfi-122/master/srfi-122.html>. > I look forward to this version becoming a new SRFI before the Orange > Edition ballot, which will be sometime this year (but not soon, I > have a lot of SRFIs to write and implement). >