Turning it around is easier to read, and shorter;) h=: ($-.1:)$, $ h 3 1 4 1 5 9 $ 'abc' 3 4 5 9
greg ~krsnadas.org -- from: Linda Alvord <[email protected]> to: [email protected] date: 8 May 2014 01:58 subject: Re: [Jprogramming] Remove 1s from shapes I was just practicing "going backwards" this morning and look what I got! f=: (A=:$ -. 1:) ($,) ] g=: 13 :'(($y)-. 1:y)$,y ' f ($ -. 1:) ($ ,) ] g , $~ $ -. 1: Linda -- from: Roger Hui <[email protected]> to: Programming forum <[email protected]> date: 5 March 2014 07:17 subject: Re: [Jprogramming] Remove 1s from shapes My guess is that this sort of thing is too rare to justify special code. name =: (some noun) name =: (new shape) ($,) name -- On Wed, Mar 5, 2014 at 5:43 AM, Dan Bron <[email protected]> wrote: Roger wrote: x($,)y does make a copy of the values of y >True, though I'd say this is implied in every statement about performance in >J, or special code that speeds it up (with a few specific, documented, and >well-known exceptions). Hmm, maybe it's worth making a new exception? name =: (some noun) name =: (new shape) ($,) name -Dan -- Subject: Re: [Jprogramming] Remove 1s from shapes From: Roger Hui <[email protected]> Date: Tue, 4 Mar 2014 15:45:37 -0800 To: Programming forum <[email protected]> >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 ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
