relationship to SRFI-25
Per Bothner
(30 Jul 2015 05:30 UTC)
|
Re: relationship to SRFI-25
John Cowan
(30 Jul 2015 20:20 UTC)
|
Re: relationship to SRFI-25
Bradley Lucier
(31 Jul 2015 21:00 UTC)
|
Re: relationship to SRFI-25
Bradley Lucier
(26 Sep 2015 18:33 UTC)
|
Re: relationship to SRFI-25
Per Bothner
(27 Sep 2015 05:34 UTC)
|
Re: relationship to SRFI-25
Bradley Lucier
(28 Sep 2015 21:04 UTC)
|
Re: relationship to SRFI-25 Per Bothner (28 Sep 2015 21:29 UTC)
|
Re: relationship to SRFI-25
Bradley Lucier
(28 Sep 2015 21:54 UTC)
|
Re: relationship to SRFI-25
Jamison Hope
(28 Sep 2015 22:22 UTC)
|
Re: relationship to SRFI-25
Bradley Lucier
(28 Sep 2015 22:38 UTC)
|
Re: relationship to SRFI-25
Jamison Hope
(28 Sep 2015 23:20 UTC)
|
Re: relationship to SRFI-25
Bradley Lucier
(29 Sep 2015 06:03 UTC)
|
Re: relationship to SRFI-25
Jamison Hope
(29 Sep 2015 16:12 UTC)
|
Re: relationship to SRFI-25
Bradley Lucier
(30 Sep 2015 03:42 UTC)
|
On 09/28/2015 02:04 PM, Bradley Lucier wrote: > On 09/27/2015 01:33 AM, Per Bothner wrote: >> >> I think this has been mentioned before: the name specialized-array-share! >> should not end in a '!'. > > Perhaps, I don't remember the remark. > > Let me say what issue I was trying to address by adding "!" and you can offer some advice. > > I've generally thought that the bang "!" in set-cdr!, vector-set!, etc., was to alert the reader that something strange or nonlocal could happen. I thank of it as something that causes a side-effecting modification. Can you think of counter-examples? > In our case, if we have > > (define domain (interval '#(0 0) '#(100 100))) > (define a (array->specialized-array (array domain list))) > > for which > > ((getter a) 0 0) => (0 0) > > and then > > (define b (specialized-array-share! a (interval '#(0) '#(100)) (lambda (i) (values i j)))) > > > then calling > > ((setter b) #t 0) > > will change subsequent values of > > ((getter a) 0 0) => #t How is this different from: #|kawa:1|# (define lx (list 'x 'a 'b)) #|kawa:2|# (define ly (cons 'y (cdr lx))) #|kawa:3|# (set-car! (cdr ly) 'w) #|kawa:4|# lx (x w b) The specialized-array-share! is the equivalent of line 2 - i.e. we create a new data structure that share with another. > I'd prefer there to be some syntactic way to indicate that using specialized-array-share! could trip you up. > > Given this understanding, can you offer some advice about naming here? Yes. Remove the '!'. -- --Per Bothner xxxxxx@bothner.com http://per.bothner.com/