Thanks, Ric. That's useful too. I can see advantages in working with LF-separated strings instead of the 2D char mx'es I'm used to. Coming from APL I'd tend to overuse "each" and approach my tasks that way.
Ian On Sun, Feb 14, 2010 at 5:57 AM, Sherlock, Ric <r.g.sherl...@massey.ac.nz> wrote: > For the general case (where ;: doesn't work for parsing the line) starting > with Noun, I think I'd start of by not turning the defined noun into a MxN > table. > Assuming the key is fixed width, I'd use a combination of split and ;._2 for > example: > > t1=: 0 : 0 > {. curlylfdot > {: curlylfco > {:: curlylfcoco > } curlyrt > ) > t2=: 0 : 0 > Mon[day] Ian > Tues[day] Avril > We[dnesday] Barbara > ) > 3&split;._2 t1 > +---+------------+ > |{. | curlylfdot | > +---+------------+ > |{: | curlylfco | > +---+------------+ > |{::| curlylfcoco| > +---+------------+ > |} | curlyrt | > +---+------------+ > 3&split;._2 t2 > +---+-----------------+ > |Mon|[day] Ian | > +---+-----------------+ > |Tue|s[day] Avril | > +---+-----------------+ > |We[|dnesday] Barbara| > +---+-----------------+ > > >> From: Ian Clark >> >> > How do you do it in APL? Translate it into J. >> >> Sure, that's how I started out. I used to be able to write dtb{each} >> []SPLIT t[;{iota}4] >> but mindless translation to J looks Japlese to me (i.e. scope for >> improvement): >> >> ([: dtb&.> <"1)(i.4){"1 t >> >> It may be just a matter of taste / experience, but IMO that's neither >> elegant nor memorable. >> >> > {."1 ;: t >> >> Now that is nice! >> And it seems to work how I want it with other examples in the same >> vein: >> >> t=: >@((10{a.)&cut) 0 : 0 >> Mon[day] Ian >> Tues[day] Avril >> We[dnesday] Barbara >> ) >> >> Ian >> >> On Sun, Feb 14, 2010 at 4:58 AM, Roger Hui <rhui...@shaw.ca> wrote: >> > How do you do it in APL? Translate it into J. >> > >> > Alternatively, your table t is a very special table >> > and so admits some special phrases. e.g. >> > >> > {."1 ;: t >> > >> > >> > >> > ----- Original Message ----- >> > From: Ian Clark <earthspo...@googlemail.com> >> > Date: Saturday, February 13, 2010 20:50 >> > Subject: [Jprogramming] Slicing and dicing a 2D char mx >> > To: Programming forum <programming@jsoftware.com> >> > >> >> 1. If I have a M-by-N table with entries like this (you may >> recognise >> >> the example ;)... >> >> >> >> ... >> >> {. curlylfdot >> >> {: curlylfco >> >> {:: curlylfcoco >> >> } curlyrt >> >> ... >> >> >> >> how do I neatly slice off the first 3 columns (say) into a boxed >> list >> >> of tally M to serve as a lookup index? >> >> Ditto any given field, i.e. set of columns? >> >> I'm often doing it, but a different way each time, and the >> >> methods I >> >> use are cumbersome. >> >> >> >> 2. Is there already a slice'n'dice cookbook on the wiki, to give >> quick >> >> answers to questions like this? >> > --------------------------------------------------------------------- >> - >> > 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