What's the difference or (,a) ? which form should I use?
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