For the kids at school, I make their profile include a version of script_z_ that checks for missing trailing ) .
It catches them, but it is confounded by Notes and also by the plot package, which does some unusual things with 3 : 0 . Henry Rich Alex Rufon wrote: > Hi Henry, > > How about for verbs? > > We delimit them with a close parens. i.e. > Foo=: verb define > i. 10 10 > ) > > Using your specs would return this as unbalanced. > > Just a thought. > > r/Alex > > -----Original Message----- > From: [email protected] > [mailto:[email protected]] On Behalf Of Henry Rich > Sent: Thursday, October 08, 2009 6:11 AM > To: Programming forum > Subject: Re: [Jprogramming] Balanced parens > > One-pass version: > > pairs =. _2 ]\ '()[]{}' > remnant =: (2&}.)^:(pairs e.~ 2&{.)@,/@(#~ e.&(,pairs)) > balanced =: (+&(*...@#) -.&({."1 pairs))@remnant > > Henry Rich > > > Henry Rich wrote: >> This removes inner matched pairs repeatedly and analyzes what's left. >> Suitable if the nesting level is not very high. Should be 3 lines. >> >> pairs =. _2 ]\ '()[]{}' >> remnant =: (#~ [: (+: _1&(|.!.0)) [: +./ pairs&(E."1))^:_ @ (#~ >> e.&(,pairs)) >> balanced =: ( *...@# + *...@#@(-.&({."1 pairs)) )@remnant >> >> balanced '()[]' >> 0 >> balanced '()[](' >> 1 >> balanced '()[](]' >> 2 >> >> Henry Rich >> >> Chris Burke wrote: >>> How to check if a string has balanced [] {} ()? >>> >>> Any pair by itself is easy enough, but I want to check all three balance >>> together, e.g. >>> >>> ...[(])... >>> >>> would fail. Assume there are no character strings. >>> >>> Ideally, I'd like a result of >>> >>> 0 = balanced >>> 1 = balanced so far, but some closing delimiters to come >>> 2 = unbalanced (and broken) >>> >>> >>> ---------------------------------------------------------------------- >>> 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
