But that is not more general than arbitrary indices. -- Raul
On Sun, Jun 11, 2017 at 9:16 AM, 'Pascal Jasmin' via Programming <[email protected]> wrote: > odd positions means where indexes are an odd number. > > > > > > ________________________________ > From: Raul Miller <[email protected]> > To: Programming forum <[email protected]> > Sent: Sunday, June 11, 2017 8:54 AM > Subject: Re: [Jprogramming] Apply at start/lengths pairs > > > > Personally, I do not understand what you mean by "odd positions". > > My first cut at understanding would be odd as in even numbers vs. odd > numbers. But that's not what I would think of as more general. > > I took a look at your code, but there was quite a lot of it, and a > quick glance did not suggest what you might have been meaning here. > > Perhaps you could unpack your thinking a bit? > > Thanks, > > -- > Raul > > > On Sun, Jun 11, 2017 at 8:43 AM, 'Pascal Jasmin' via Programming > <[email protected]> wrote: >> A more general procedure than your request is to cut your data such that >> your start/end segments are in odd positions >> >> >> in jpp, https://github.com/Pascal-J/jpp >> >> cutP is a process for cutting on start and end tokens, though there are >> faster methods in included fsm.ijs file. And that process could get >> significant boost if ;: were enhanced to support emitting empty boxes, but: >> >> cutP '(asdf)g()' >> ++----+-+++ >> ||asdf|g||| >> ++----+-+++ >> >> cutP is dyadic for start and end tokens other than '()'. >> >> >> also from jpp, the AltM adverb takes a gerund to apply cyclically to such an >> above cut structure. >> >> >> a:"_`u AltM would produce empties for non-odd positions. >> >> But if you only care about the selections, then either regex, or a ;: >> definition can extract them. >> >> >> ________________________________ >> From: Danil Osipchuk <[email protected]> >> To: Programming forum <[email protected]> >> Sent: Sunday, June 11, 2017 7:19 AM >> Subject: [Jprogramming] Apply at start/lengths pairs >> >> >> >> Hi all, >> >> >> I wonder if there is an idiomatic way to apply a verb using an array of >> >> start and length pairs. This is a recurring pattern when extracting data >> >> from files. >> >> I've tried 3 adverbs (the example at the end), and the first one is >> >> slightly better on big files, but I'm still looking for possible >> >> improvements (the need is to extract selected fields from multi-gigabyte >> >> memory mapped csv/xml files) >> >> >> 'ab' xmlTagContentSL XML >> >> >> 11 1 >> >> >> 22 2 >> >> >> 34 3 >> >> >> 47 4 >> >> >> 'ab' <xmlTagDo XML >> >> >> +-+--+---+----+ >> >> >> |1|20|300|4000| >> >> >> +-+--+---+----+ >> >> >> (2 2 $ 'ab'xmlTagContentSL XML) <doSL XML >> >> >> +---+----+ >> >> >> |1 |20 | >> >> >> +---+----+ >> >> >> |300|4000| >> >> >> +---+----+ >> >> >> >> regards, >> >> Danil >> >> >> doSL =: 1 : '(,."1@[)u;.0]' NB. SL stands for start len pair >> >> >> NB. doSL =: 1 : '(0|:[:,:[)u;.0]' >> >> >> NB. doSL =: 1 : '(u;.0~ ,.)~"1' >> >> >> >> xmlTagOpn =: '<' ,'>',~] >> >> >> xmlTagCls =: '</','>',~] >> >> >> >> xmlTagContentSL =: 4 : 0 >> >> >> CS =. (xmlTagOpn >x) (#@[ + I.@E.) y >> >> >> CE =. (xmlTagCls >x) I.@E. y >> >> >> CS ,. CE-CS >> >> >> ) >> >> >> >> xmlTagDo =: 1 : '(xmlTagContentSL (u doSL) ])f.' >> >> >> >> XML =: 0 : 0 >> >> >> <data> >> >> >> <ab>1</ab> >> >> >> <ab>20</ab> >> >> >> <ab>300</ab> >> >> >> <ab>4000</ab> >> >> >> </data> >> >> >> ) >> >> ---------------------------------------------------------------------- >> >> 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
