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

Reply via email to