P.S. example use:

    trampoline 3 peano 5
8

Thanks,

-- 
Raul



On Tue, Aug 26, 2014 at 12:04 PM, Raul Miller <[email protected]> wrote:

> (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

Reply via email to