SP=: ' ' b2o=: }.@((<SP) ;@,. ]) b2q=: }:@((<SP) ;@,.~ ]) x=: (1e6 ?@$ 20) $&.> 'x'
(b2o -: b2q) x 1 timer 'b2o x' 0.388007 timer 'b2q x' 0.262082 On Thu, Sep 6, 2012 at 4:07 PM, Ian Clark <[email protected]> wrote: > Quite right, Raul. And strings containing newlines do matter to me. A lot. > > I confess I only threw in bpv as a bit of a joke. It relies on 5!:5 > converting boxed z to... > <;._1 ' alpha bravo charlie' > which it doesn't always. In fact, it returns your example without change > ... > > z123=: '1';'2';'3' > 5!:5 <'z123' > '1';'2';'3' > > So I fear bpv doesn't merit close attention. > > (I suspect ;:inv will eventually let me down too, but I haven't fooled it > yet!) > > b2o and its sister b2f do matter, however, as I propose to put serious > weight on them, as g.p. utilities. > > b2o=: }.@((<SP) ;@,. ]) > b2f=: }.@((<LF) ;@,. ]) > > so I'd be grateful to be notified of anyone making them misbehave. > > Possible gray areas to investigate: use of i{a. where i>127, utf-8, > boxed scalars, strings with CRLF, 0{a. and other subasciis, uses of a: > , etc, etc. > > On Thu, Sep 6, 2012 at 11:43 PM, Raul Miller <[email protected]> > wrote: > > Note that bpv would also have problems with boxed strings containing > > spaces, and even worse problems with boxed strings containing > > newlines. (It's not clear, though, if strings containing newlines > > matter to you.) > > > > -- > > Raul > > > > On Thu, Sep 6, 2012 at 6:39 PM, Ian Clark <[email protected]> wrote: > >> Right you are. > >> > >> What I really want (but haven't said) is the fastest versions of b2o > >> (boxed-to-open-string) and b2f (boxed-to-LF-separated-string), where > >> b2f is b2o with ' ' (-:SP) replaced with LF. > >> > >> I think I've got them now, thanks to everyone. > >> > >> BTW solutions involving deb aren't general enough, esp for b2f, where > >> the boxed strings may validly contain multiple spaces. > >> > >> On Thu, Sep 6, 2012 at 11:32 PM, Raul Miller <[email protected]> > wrote: > >>> I prefer > >>> ;:inv z > >>> > >>> But note that > >>> > >>> deb,' ',.>z > >>> > >>> would work. (J6 users need require'strings' before this can work.) > >>> > >>> FYI, > >>> > >>> -- > >>> Raul > >>> > >>> On Thu, Sep 6, 2012 at 6:21 PM, Ian Clark <[email protected]> > wrote: > >>>> Yes, but we need a string. > >>>> You can ravel the 2D array to get a string, viz: > >>>> ,> z > >>>> but it gives you a varying number (0 or more) of separating spaces. > >>>> > >>>> On Thu, Sep 6, 2012 at 10:50 PM, km <[email protected]> wrote: > >>>>> > 'alpha';'bravo';'charlie' > >>>>> alpha > >>>>> bravo > >>>>> charlie > >>>>> > >>>>> I'm resending because the echo from Jsoftware to my iPad was > incorrect. Hope this one shows my solution was to open the list of boxes. > >>>>> > >>>>> Sent from my iPad > >>>>> > >>>>> > >>>>> On Sep 6, 2012, at 4:32 PM, km <[email protected]> wrote: > >>>>> > >>>>>>> 'alpha';'bravo';'charlie' > >>>>>> alpha > >>>>>> bravo > >>>>>> charlie > >>>>>> > >>>>>> (shape 3 7) > >>>>>> > >>>>>> Sent from my iPad > >>>>>> > >>>>>> > >>>>>> On Sep 6, 2012, at 11:38 AM, Ian Clark <[email protected]> > wrote: > >>>>>> > >>>>>>> Kindergarten class... > >>>>>>> > >>>>>>> I have a list of boxed literals... > >>>>>>> z=: 'alpha' ; 'bravo' ; 'charlie' > >>>>>>> > >>>>>>> I want to flatten it to a literal, but with spaces between. > (Variant: > >>>>>>> --with LF's). > >>>>>>> > >>>>>>> Raze (;) does indeed flatten the list... > >>>>>>> ;z > >>>>>>> alphabravocharlie > >>>>>>> > >>>>>>> There's got to be a really neat extended Raze which includes > >>>>>>> separators. But the fastest I've been able to come up with is: > >>>>>>> > >>>>>>> b2o=: }.@((<' ') ;@,. ]) > >>>>>>> b2o z > >>>>>>> alpha bravo charlie > >>>>>>> > >>>>>>> Any advances? > >>>>>>> > ---------------------------------------------------------------------- > >>>>>>> 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 > >>> ---------------------------------------------------------------------- > >>> 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 > ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
