(I had meant to use ex=: {{y+1}} and 13!:4'' -- but I goofed twice.)

-- 
Raul

On Wed, Jan 12, 2022 at 1:34 PM Raul Miller <[email protected]> wrote:
>
> Oops, the 13!:5 example was bad.
>
> Sorry about that.
>
> --
> Raul
>
> On Wed, Jan 12, 2022 at 1:31 PM Raul Miller <[email protected]> wrote:
> >
> > I can't give a good answer for question of where this detail needs to
> > be documented, because I do not adequately understand why this detail
> > exists.
> >
> > Taking a step back, for perspective:
> >
> > catch catches errors even if the debug flag is set. But, it currently
> > does not trap a stop. Therefore, in the current implementation, a stop
> > must not be an error.
> >
> > Proof:
> >    ex=: {{1+y}}
> >    exa=: {{try.ex y catch.3 end.}}
> >    13!:0]1
> >    13!:3'ex 0'
> >    exa 9
> > 10
> >
> > If stops were errors, then exa would have returned 3 instead of 10.
> >
> > catchd. catches errors only if debugging is disabled. This would mean
> > that it ignores errors when debugging is enabled. I cannot imagine a
> > use for this feature in the current implementation (or, really, in any
> > circumstances -- by that's presumably a limitation of my current
> > imagination).
> >
> > (catcht. catches throws. It's not clear from the documentation whether
> > a throw is an error, but experimentation suggests that it is.)
> >
> > So it looks like try. temporarily disables suspension unless a catchd.
> > block is present.
> >
> > Assuming that the current behavior is the intended behavior, this
> > suggests that the mention of "the setting of the debug flag 13!:0" and
> > this behavior belongs on the try. keyword, and not on the catch.
> > keyword. Additionally, the catchd. keyword should mention that its
> > presence allows suspension in the try block.
> >
> > ---
> >
> > Put different, there's two questions from my perspective:
> >
> > (A) what behavior should be implemented, and
> > (B) how should that behavior be documented.
> >
> > Consider this example:
> >
> > ex=: {{13!:}}
> > exa=: {{try.ex y catch.3 catchd.4 catcht.5 end.}}
> > 13!:0]1
> > 13!:3'ex 0'
> >    (;$)exa 10
> > |stop: ex
> > |   13!:
> > |ex[0]
> >       13!:5''
> > ┌┬───┐
> > ││0 0│
> > └┴───┘
> >
> > Here, execution was "resumed" but none of the catch blocks were executed.
> >
> > I find this behavior puzzling, and I do not feel certain that the
> > implementation is correct.
> >
> > Thanks,
> >
> > --
> > Raul
> >
> >
> > On Wed, Jan 12, 2022 at 12:03 PM Henry Rich <[email protected]> wrote:
> > >
> > > I don't know how you document a detail like this so that users will
> > > actually see it.  In try. and ( :: ) ?
> > >
> > > Henry Rich
> > >
> > > On 1/12/2022 9:35 AM, Raul Miller wrote:
> > > > If try. temporarily turns off debugging, shouldn't that be documented?
> > > >
> > > > 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

Reply via email to