(I thought I sent this message, this morning, but I see that it has not yet
been sent. I have been having this happen a lot recently. I have a hunch
about what is happening, but for now I'll just note that I am having this
issue, and I apologize if it seems I am ignoring anyone.)
--------------------------------------------------------
Maybe like this:
trampoline=:3 :0
try.
while. 1 do.
y=. y`:6''
end.
catch.
y
end.
)
peano=:4 :0
if. 0=y do. x return. end.
op=. <@,&<
noun=. '0' op ]
const=. '"' op (noun _),~ noun
(const x+1)`peano`(const y-1)
)
Note that if you instead define op, noun and const globally you should
rename 'noun' so it does not conflict with the existing definition for that
name.
op is a utility gerund construction mechanism.
noun constructs a noun gerund from a value
const constructs a constant verb gerund from a value
I hope that's clear enough?
Thanks,
--
Raul
On Tue, Aug 26, 2014 at 6:10 AM, Joe Bogner <[email protected]> wrote:
> On Mon, Aug 25, 2014 at 9:51 PM, Raul Miller <[email protected]>
> wrote:
> >
> http://www.integralist.co.uk/posts/understanding-recursion-in-functional-javascript-programming/#the-solution
> > looks like it is describing this:
> >
> > trampoline=:3 :0
> > try.
> > while. 1 do.
> > y=. y`:6''
> > end.
> > catch.
> > y
> > end.
> > )
> >
>
> The linked url includes a sum function that is applied against the
> trampoline. How would that be done in J? I tried some things and could
> not figure out how to bind the x/y to the gerund, which is what I
> assumed I needed to do
>
> Don't run this code as it will crash J
>
> trampoline=:3 :0
> try.
> while. 1 do.
> y=. y`:6''
> end.
> catch.
> y
> end.
> )
>
> NB. warning, crashes J
> recur=: 4 : 0
> if. y > 0
> do. trampoline recur&(y+1)`''
> else. x
> end.
> )
>
> sum=: 4 : 0
> trampoline (x recur y)
> )
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
>
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm