I'm not sure if it's even easy to to in J, I'll have to think about it.

Or maybe someone else can come up with an implementation?

Thanks,

-- 
Raul


On Tue, Dec 27, 2016 at 8:59 PM, bill lam <[email protected]> wrote:
>> ... 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
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to