After studying this: the rules you implemented for {{ and }} require
either an additional sequential machine operation (somewhat analogous
to ev, but non-repeating), or post-processing the result (to break up
offending {{. and {{: sequences).FYI, -- Raul On Wed, Nov 4, 2020 at 11:08 AM Henry Rich <[email protected]> wrote: > > To avoid breaking existing code that uses {{. . > > Henry Rich > > On 11/4/2020 11:07 AM, Raul Miller wrote: > > Oh, yes.. hmm... > > > > Looking at what I tested, I see that I messed up that test. (For some > > reason, I just tested the ;: monad there.) > > > > That said... remind me again why the {{ and }} rules do not follow the > > same pattern as any other tokenization when dealing with . and : > > characters? > > > > Thanks, > > > > -- > > Raul > > > > > > On Wed, Nov 4, 2020 at 10:52 AM Henry Rich <[email protected]> wrote: > >> (0;sj;mj)&;: '{{.' > >> +---+ > >> |{{.| > >> +---+ > >> ;: '{{.' > >> +-+--+ > >> |{|{.| > >> +-+--+ > >> (0;sj;mj)&;: 'NB. comment' , 10 48 10 { a. > >> +--------------+ > >> |NB. comment 0 | > >> +--------------+ > >> ;: 'NB. comment' , 10 48 10 { a. > >> +-----------+-+-+-+ > >> |NB. comment| |0| | > >> +-----------+-+-+-+ > >> > >> Henry Rich > >> > >> On 11/4/2020 10:27 AM, Raul Miller wrote: > >>> This needs more extensive testing, but I believe that I have an > >>> updated mj and sj for > >>> https://www.jsoftware.com/help/dictionary/d332.htm which delivers the > >>> new behavior for the ;: monad with (0;sj;mj)&;: > >>> > >>> (beware email induced line wrap). > >>> > >>> mj=: 256$0 NB. X other > >>> mj=: 1 (9,a.i.' ')}mj NB. S space and tab > >>> mj=: 2 (,(a.i.'Aa')+/i.26)}mj NB. A A-Z a-z excluding N B > >>> mj=: 3 (a.i.'N')}mj NB. N the letter N > >>> mj=: 4 (a.i.'B')}mj NB. B the letter B > >>> mj=: 5 (a.i.'0123456789_')}mj NB. 9 digits and _ > >>> mj=: 6 (a.i.'.')}mj NB. D . > >>> mj=: 7 (a.i.':')}mj NB. C : > >>> mj=: 8 (a.i.'''')}mj NB. Q quote > >>> mj=: 9 (a.i.'{')}mj NB. { > >>> mj=:10 (a.i.'}')}mj NB. } > >>> > >>> sj=: _2]\"1 }.".;._2 (0 : 0) > >>> ' X S A N B 9 D C Q { } ']0 > >>> 1 1 0 0 2 1 3 1 2 1 6 1 1 1 1 1 7 1 10 1 11 1 NB. 0 space > >>> 1 2 0 3 2 2 3 2 2 2 6 2 1 0 1 0 7 2 10 2 11 2 NB. 1 other > >>> 1 2 0 3 2 0 2 0 2 0 2 0 1 0 1 0 7 2 10 2 11 2 NB. 2 alp/num > >>> 1 2 0 3 2 0 2 0 4 0 2 0 1 0 1 0 7 2 10 2 11 2 NB. 3 N > >>> 1 2 0 3 2 0 2 0 2 0 2 0 5 0 1 0 7 2 10 2 11 2 NB. 4 NB > >>> 9 0 9 0 9 0 9 0 9 0 9 0 1 0 1 0 9 0 9 0 9 0 NB. 5 NB. > >>> 1 4 0 5 6 0 6 0 6 0 6 0 6 0 1 0 7 4 10 4 11 4 NB. 6 num > >>> 7 0 7 0 7 0 7 0 7 0 7 0 7 0 7 0 8 0 7 0 7 0 NB. 7 ' > >>> 1 2 0 3 2 2 3 2 2 2 6 2 1 2 1 2 7 0 10 2 11 2 NB. 8 '' > >>> 9 0 9 0 9 0 9 0 9 0 9 0 9 0 9 0 9 0 9 0 9 0 NB. 9 comment > >>> 1 2 0 3 2 2 3 2 2 2 6 2 1 0 1 0 7 2 1 0 1 2 NB. 10 { > >>> 1 2 0 3 2 2 3 2 2 2 6 2 1 0 1 0 7 2 1 2 1 0 NB. 11 } > >>> ) > >>> > >>> Thanks, > >>> > >> > >> -- > >> This email has been checked for viruses by AVG. > >> https://www.avg.com > >> > >> ---------------------------------------------------------------------- > >> For information about J forums see http://www.jsoftware.com/forums.htm > > ---------------------------------------------------------------------- > > For information about J forums see http://www.jsoftware.com/forums.htm > > > -- > This email has been checked for viruses by AVG. > https://www.avg.com > > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
