x($,)y does make a copy of the values of y, as the following session
illustrates:

   7!:0 ''
2107136
   x=: 3 1 4 1 5 9 265358 $ 0.2
   7!:0 ''
2149590784
   t=: x
   7!:0 ''
2149590912

   NB. i.e. did not make a copy to make t

   x1=: (($-.1:) ($,) ]) x
   7!:0 ''
4297074688

   NB. i.e. made a copy to make x1

Or this:

   timer=: 6!:2
   timer 'x1=: (($-.1:) ($,) ]) x'
0.574603

If it did not make a copy it wouldn't have taken so much time to make x1.




On Tue, Mar 4, 2014 at 3:10 PM, Dan Bron <[email protected]> wrote:

> What Roger so humbly neglected to brag about is the hook ($,) is supported
> by special code.
>
> In effect, the verb he provided will be instantaneous: ($,) simply updates
> the tiny piece of memory holding the array's shape with the new shape.
>
> The value part of the array won't be touched, or even looked at.
>
> -Dan
>
>
>
> > On Mar 4, 2014, at 4:59 PM, Brian Schott <[email protected]> wrote:
> >
> > That's funny. I almost said what you did. Thanks.
> >
> >
> >> On Tue, Mar 4, 2014 at 4:44 PM, Roger Hui <[email protected]>
> wrote:
> >>
> >>   f=: ($ -. 1:) ($,) ]
> >>   $ f 3 1 4 1 5 9 $ 'abc'
> >> 3 4 5 9
> >>
> >>
> >>
> >> On Tue, Mar 4, 2014 at 1:38 PM, Brian Schott <[email protected]>
> >> wrote:
> >>
> >>> Is there a general verb that can reshape any noun with 1s in its shape
> so
> >>> that the axes with 1s disappear? I know that most often changing
> >>> calculations slightly can eliminate the 1s before they arise, but not
> >>> always.
> >>>
> >>> For example if $a == 4 1 4 3, is there a verb that will
> >>> make generalize the result like how ,"_2]1|: does in this case?
> >>> $,"_2]1|:a   ==  4 4 3
> >>>
> >>> --
> >>> (B=)
> >>> ----------------------------------------------------------------------
> >>> For information about J forums see http://www.jsoftware.com/forums.htm
> >> ----------------------------------------------------------------------
> >> For information about J forums see http://www.jsoftware.com/forums.htm
> >
> >
> >
> > --
> > (B=) <-----my sig
> > Brian Schott
> > ----------------------------------------------------------------------
> > 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

Reply via email to