Just did this:
foo0=: 3 : 0
y=. >:y
foo1 y
)
foo1=: 3 : 0
y=. y,XX
y=. y*10
)
4!:55 <'XX'
1
foo0 10
|value error: XX
| y=. y*10
|foo1[1]
y NB. Currently undefined because XX is undefined
11 , XX
13!:19''
|stop: foo0
| foo1 y
|foo0[1]
y NB. Value at this level as expected
11
XX=: 99 NB. Define variable to avoid value error
13!:4'' NB. Resume execution in "foo0"
110 990
This works the same as I've seen it in the past.
On Wed, Apr 6, 2022 at 7:44 PM Henry Rich <[email protected]> wrote:
> Quite right, but I don't want to go there yet. I want to see if I'm
> misunderstanding 13!:19.
>
> Henry Rich
>
> On 4/6/2022 7:41 PM, Elijah Stone wrote:
> >> Suppose you want to look around in the caller's frame. You try
> >> 13!:19'', but it restarts immediately, calls problem again, and fails.
> >
> > That seems like a valid use case. More generally, it seems like it
> > would be useful to poke around in _any_ stack frame, without
> > destroying the ones beneath (or on top of, depending on which way your
> > stacks grow) it. But that leads to forking stacks and continuations.
> > ----------------------------------------------------------------------
> > 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
>
--
Devon McCormick, CFA
Quantitative Consultant
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm