What do you mean by "extra copies" and how have you been measuring that?
(Most of the time, a "copy" just means incrementing a reference count. There have been some exceptions, though, for boxed data, for example.) Thanks, -- Raul On Tue, Apr 25, 2017 at 9:19 PM, Xiao-Yong Jin <[email protected]> wrote: > >> On Apr 25, 2017, at 6:30 PM, Eric Iverson <[email protected]> wrote: >> >> I have not followed this discussion at all and am probably way off base. >> >> But how is: >> >> allocate a few structures, and pass their pointers to the same function in >> separate callings >> >> different from: >> >> allocated a few globals in an agreed upon locale (call it the heap), and >> pass their names (pointers) to the same verb in separate callings >> >> ? > > This question is actually right on spot, and I am struggling with this. > There are two aspects of this problem in my opinion. > > 1. Unnecessary copying of data, given the current state of the in-place > operations in J. To have a varied state in J, passing names to verb > essentially amounts to the following operations, > > State =. State Verb Control NB. akin to usual functional style > > Most of the time J would make unnecessary copies of the data in State. > I haven't found a reliable way to avoid extra copying, except for when > the 'Verb' here is a primitive. > > 2. Inconvenience, if you want to maintain a set of inhomogeneous states. > I can do > > 'State1A State1B State1C' = (State1A;State1B;State1C) Verb Control > 'State2A State2B State2C' = (State2A;State2B;State2C) Verb Control > > Apart from copying/boxing, there are too many names to keep track of. > I would rather do > > Verb_1_ Control > Verb_2_ Control > > I guess I'm just more familiar with the latter, because it resembles > a common C function: > > void Verb(*Locale, const *Control) > > Maybe I'm missing something in J. Please feel free to correct me. > > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
