> ... instead implement "all
> unmatched parenthesis", at least hypothetically.

this is a good idea, time taken at runtime should be the same
as first unmatched, is it easy to do in C?

Вт, 27 дек 2016, Raul Miller написал(а):
> I think we would call that the "last unmatched parenthesis".
> 
> Certainly implementable, but it's not the only J-like approach. We do
> have left-to-right concepts in J (for example, NB. appears on the left
> of its comment, and conjunction arguments get bound left-to-right --
> with nouns a, b and c, a@b@c is a@(b@c) and not (a@b)@c even though
> a-b-c is a-(b-c)). For that matter, we could instead implement "all
> unmatched parenthesis", at least hypothetically.
> 
> Anyways, I do see what you are saying, but I don't know what
> importance to attach to it.
> 
> Thanks,
> 
> -- 
> Raul
> 
> 
> On Tue, Dec 27, 2016 at 12:06 PM, Linda A Alvord
> <[email protected]> wrote:
> > It seems to me that this is in the spirit o J.  Many uses of @ and other 
> > symbols indicate to me that the writer is "thinking" from left to  right. 
> > If the coding of J is essentially from right to left your order feels right 
> > to me.
> >
> > Linda
> >
> > -----Original Message-----
> > From: Programming [mailto:[email protected]] On 
> > Behalf Of bill lam
> > Sent: Monday, December 26, 2016 7:39 PM
> > To: Programming forum
> > Subject: Re: [Jprogramming] unmatched parenthesis
> >
> > '((()'
> > shouldn't the first unmatched at index 1 instead of 0? ie use i: instead of 
> > i. for unmatched (.
> >
> >
> >
> >
> > On 27 Dec, 2016 8:31 am, "Raul Miller" <[email protected]> wrote:
> >
> > Ah, good point - I was not properly handling the case where the first 
> > unmatched parenthesis was the first character on the line.
> >
> > Also, the close script line is something of a special case, but it's easy 
> > enough to check for:
> >
> > With that fix and this change, I'd do something like this:
> >
> > firstunmatched=:3 :0
> >   if. ')' -:&(-.&' ') y do. #y return. end.
> >   q=. unquoted=. -.~:/\y=''''
> >   c=. uncommented=. -. +./\ q * 'NB.' E. y
> >   n=. parendepth=. +/\q*c*-/'()'=/y
> >   if. 0 < {: n do.
> >     (n i. _1) <. 1 i:~0 1 E. 0,n
> >   else.
> >     n i. _1
> >   end.
> > )
> >
> > Thanks,
> >
> > --
> > Raul
> >
> >
> > On Mon, Dec 26, 2016 at 7:05 PM, bill lam <[email protected]> wrote:
> >> your verb seemed to find unmatched ) only, e.g. failed for '(()' or
> >> '(()('
> >> also a line of ) and whitespace belongs to class 'close definition'
> >> and should not be flagged as mismatch.
> >>
> >>
> >> On 27 Dec, 2016 2:42 am, "Raul Miller" <[email protected]> wrote:
> >>
> >>> I'm not sure what you mean by "containing control words" but code
> >>> readability issues are usually a call for better code.
> >>>
> >>> For this, perhaps (warning: lightly tested code):
> >>>
> >>> firstunmatched=:3 :0
> >>>   q=. unquoted=. -.~:/\y=''''
> >>>   c=. uncommented=. -. +./\ q * 'NB.' E. y
> >>>   n=. parendepth=. +/\q*c*-/'()'=/y
> >>>   if. 0 < {: n do.
> >>>     (n i. _1) <. 1+1 i:~0 1 E. n
> >>>   else.
> >>>     n i. _1
> >>>   end.
> >>> )
> >>>
> >>> In other words: ignoring quoted and commented parenthesis, look for
> >>> the first occurrence of either an unbalanced right parenthesis or an
> >>> unbalanced left parenthesis.
> >>>
> >>> Let me know, though, if you see any flaws in this implementation.
> >>>
> >>> Thanks,
> >>>
> >>> --
> >>> Raul
> >>>
> >>>
> >>> On Mon, Dec 26, 2016 at 12:57 PM, Henry Rich <[email protected]>
> > wrote:
> >>> > I don't think it is reasonable to treat ')' and 'NB.' as containing
> >>> control
> >>> > words.  It makes the code very hard to read.
> >>> >
> >>> > Showing the mismatched parenthesis is important enough that it
> >>> > might be better to have it even with this deficiency, but it IS a
> >>> > deficiency and should be treated as a bug to be fixed someday.
> >>> >
> >>> > Henry Rich
> >>> >
> >>> > On 12/26/2016 11:48 AM, bill lam wrote:
> >>> >>
> >>> >> I double checked with j602, it has no problem in high lighting the
> >>> >> unmatched )( in
> >>> >>
> >>> >> a '+' ((mno - rst) % b  NB. )unmatched paren
> >>> >>        ^
> >>> >> a '+' ((mno - rst) % b ')' NB. )unmatched paren
> >>> >>        ^
> >>> >> and
> >>> >>
> >>> >> '(' (=:))
> >>> >>          ^
> >>> >> But this is matched and is correct a '+' ((mno - rst) % b ')') NB.
> >>> >> )unmatched paren
> >>> >>
> >>> >> I think it is reasonable to omit this pattern for syntax
> >>> >> high-lighting.
> >>> >>
> >>> >
> >>> > -------------------------------------------------------------------
> >>> > --- 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
> >
> > ----------------------------------------------------------------------
> > For information about J forums see http://www.jsoftware.com/forums.htm
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm

-- 
regards,
====================================================
GPG key 1024D/4434BAB3 2008-08-24
gpg --keyserver subkeys.pgp.net --recv-keys 4434BAB3
gpg --keyserver subkeys.pgp.net --armor --export 4434BAB3
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to