in the context of explicit definition. y is always there, so it should be harmless. I thought you had already done that. My memory no longer serve me?
On Sun, May 17, 2020, 9:16 AM Henry Rich <[email protected]> wrote: > No, because if y, a, and b are deleted, you are left holding y when all > you need is c. > > Henry Rich > > On 5/16/2020 8:52 PM, bill lam wrote: > > but then the indirect assignment > > 'a b c'=. y > > should use up entire y, just increasing usecount shouldn't be a problem. > I > > think this is already implemented, am I right? > > > > On Sun, May 17, 2020, 8:13 AM Henry Rich <[email protected]> wrote: > > > >> c =. 1 { a is problematic because if a is deleted, you are left holding > >> the entire a just to make one item available. That would waste space. > >> > >> b =. , a could perhaps increase the usecount of the backer, but I didn't > >> implement it that way, and I think I decided it wouldn't work to, but I > >> can't remember why. Once you know about virtual blocks you might stop > >> writing b =. , a and use (,a) instead. > >> > >> Henry Rich > >> > >> On 5/16/2020 6:43 PM, bill lam wrote: > >>> Shouldn't assignment like > >>> b=. , a > >>> c=. 1{a > >>> just increase reference count of the mother instead of deep copy? > >>> > >>> > >>> On Sun, May 17, 2020, 6:27 AM Henry Rich <[email protected]> wrote: > >>> > >>>> I wouldn't say so. Reshape takes virtually no time/space, but boxing > or > >>>> assigning the reshaped result does. If you do something like > >>>> > >>>> +/ @: (,/) y > >>>> > >>>> the result of ,/ is never realized and it would be wrong to charge it > >>>> with time/space not used. > >>>> > >>>> Similarly > >>>> > >>>> (}. - }:) y > >>>> > >>>> the }. and }: create virtual results that are never realized. > >>>> > >>>> You need to expand your mental model beyond time/space for a verb, to > >>>> include time/space for realization when that becomes necessary. > >>>> > >>>> Henry Rich > >>>> > >>>> > >>>> On 5/16/2020 1:22 PM, 'Mike Day' via Programming wrote: > >>>>> Oh... so one needs to, say, assign the result to see the real t/s? > >>>>> > >>>>> Thanks, > >>>>> > >>>>> Mike > >>>>> > >>>>> Sent from my iPad > >>>>> > >>>>>> On 16 May 2020, at 17:05, Henry Rich <[email protected]> wrote: > >>>>>> > >>>>>> The time/space numbers are telling you that (x $ y) produces a > virtual > >>>> result when it can, while (_2 ]\ y) doesn't (yet). If you use the > >> result > >>>> immediately, the space saving is real. If you box the result or save > >> it in > >>>> a name, the value will be realized and the space saving will vanish. > >>>>>> Henry Rich > >>>>>> > >>>>>>> On 5/16/2020 11:14 AM, 'Michael Day' via Programming wrote: > >>>>>>> Much neater than what I was about to offer, unless Raoul needs to > >>>> specify the fill, > >>>>>>> in which case, this alternative rather minimal amendment is worth > >>>> consideration: > >>>>>>> ($!._ ~2,~>.@-:@#) i.7 > >>>>>>> 0 1 > >>>>>>> 2 3 > >>>>>>> 4 5 > >>>>>>> 6 _ > >>>>>>> > >>>>>>> cf > >>>>>>> > >>>>>>> _2]\ i.7 > >>>>>>> 0 1 > >>>>>>> 2 3 > >>>>>>> 4 5 > >>>>>>> 6 0 > >>>>>>> > >>>>>>> Also, the time and space performance _might_ be important for large > >>>> inputs: > >>>>>>> ts' $ _2]\ list ' [list =: i.100000 > >>>>>>> 0.000618 1.04986e6 > >>>>>>> ts'($!._ ~2,~>.@-:@#) list' > >>>>>>> 2.7e_6 2304 > >>>>>>> > >>>>>>> Cheers, > >>>>>>> > >>>>>>> Mike > >>>>>>> > >>>>>>>> On 16/05/2020 15:57, 'Rob Hodgkinson' via Programming wrote: > >>>>>>>> You could try Infix … here with NuVoc link… > >>>>>>>> https://code.jsoftware.com/wiki/Vocabulary/bslash#dyadic > >>>>>>>> > >>>>>>>> x u\ y where x is eg _2 means apply very b to successive > pairs > >>>> (_ for non-overlapping). > >>>>>>>> _2 ]\ 1 2 3 4 5 6 > >>>>>>>> 1 2 > >>>>>>>> 3 4 > >>>>>>>> 5 6 > >>>>>>>> _2 ]\ 1 2 3 4 5 6 7 > >>>>>>>> 1 2 > >>>>>>>> 3 4 > >>>>>>>> 5 6 > >>>>>>>> 7 0 > >>>>>>>> > >>>>>>>> _2 <\ 1 2 3 4 5 6 > >>>>>>>> ┌───┬───┬───┐ > >>>>>>>> │1 2│3 4│5 6│ > >>>>>>>> └───┴───┴───┘ > >>>>>>>> > >>>>>>>> HTH…/Rob > >>>>>>>> > >>>>>>>>> On 17 May 2020, at 12:42 am, Raoul Schorer < > >> [email protected]> > >>>> wrote: > >>>>>>>>> Hello, > >>>>>>>>> > >>>>>>>>> I am convinced that this must be trivial, but I wasn't able to > find > >>>> in the documentation how to reshape a list to a table without manually > >>>> extracting the length. > >>>>>>>>> in summary, is there a more direct way of doing: > >>>>>>>>> > >>>>>>>>> lst =. i. 6 > >>>>>>>>> > >>>>>>>>> ((2,~2%~#) $ ]) lst > >>>>>>>>> > >>>>>>>>> for a list of arbitrary length? > >>>>>>>>> > >>>>>>>>> Thanks! > >>>>>>>>> > >>>>>>>>> Raoul > >>>>>>>>> > >>>>>>>>> > >>>> ---------------------------------------------------------------------- > >>>>>>>>> For information about J forums see > >>>> http://www.jsoftware.com/forums.htm > >> ---------------------------------------------------------------------- > >>>>>>>> For information about J forums see > >>>> http://www.jsoftware.com/forums.htm > >>>>>> -- > >>>>>> This email has been checked for viruses by AVG. > >>>>>> https://www.avg.com > >>>>>> > >>>>>> > ---------------------------------------------------------------------- > >>>>>> For information about J forums see > >> http://www.jsoftware.com/forums.htm > >>>>> > ---------------------------------------------------------------------- > >>>>> For information about J forums see > http://www.jsoftware.com/forums.htm > >>>> ---------------------------------------------------------------------- > >>>> For information about J forums see > http://www.jsoftware.com/forums.htm > >>>> > >>> ---------------------------------------------------------------------- > >>> For information about J forums see http://www.jsoftware.com/forums.htm > >> > >> -- > >> This email has been checked for viruses by AVG. > >> https://www.avg.com > >> > >> ---------------------------------------------------------------------- > >> For information about J forums see http://www.jsoftware.com/forums.htm > >> > > ---------------------------------------------------------------------- > > For information about J forums see http://www.jsoftware.com/forums.htm > > > -- > This email has been checked for viruses by AVG. > https://www.avg.com > > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm > ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
