bug-apl
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Bug-apl] recursive functions - ackerman


From: Frederick H. Pitts
Subject: Re: [Bug-apl] recursive functions - ackerman
Date: Wed, 15 Apr 2015 17:01:03 -0500

On Wed, 2015-04-15 at 23:24 +0200, Fausto Saporito wrote:
Hello Fausto,

        Because during the recursion each time
              (m - 1) ack ( m ack (n - 1))
is evaluated, control (with the intermediate result) must be returned to
the caller of ack (which will be ack itself except for the initial call
to ack), and not fall through to the statement following the above
expression. The latter statement increments n which prevents the
recursion from terminating properly.

        The above explanation is not particularly eloquent, but I hope you get
the gist of what I'm trying to say.

Regards,

Fred

> Hi Fred,
> 
> 
> thanks a lot.
> 
> Now it works... but (maybe it's a stupid question) why that
> change? :-)
> 
> 
> regards,
> 
> Fausto
> 
> 
> 
> 2015-04-15 22:37 GMT+02:00 Frederick H. Pitts
> <address@hidden>:
>         Fausto,
>         
>                 Try changing the fourth line to
>         
>         z←(m-1) ack (m ack (n-1))⋄ →0
>         
>         Regards,
>         
>         Fred
>         
>         On Wed, 2015-04-15 at 21:03 +0200, Fausto Saporito wrote:
>         > Hello all,
>         >
>         >
>         > I'm trying to implement ackerman function, but I got no
>         luck ... and I
>         > cannot understand why this code doesn't work:
>         >
>         > z←m ack n
>         > →(m=0)/∆1
>         > →(n=0)/∆2
>         > z←(m-1) ack (m ack (n-1))
>         > ∆1: z←n+1 ⋄ →0
>         > ∆2: z←(m-1) ack 1
>         >
>         >
>         > is the double recursion permitted in APL2 ?
>         >
>         >
>         > thanks,
>         >
>         > fausto
>         >
>         >
>         
>         
>         
> 
> 





reply via email to

[Prev in Thread] Current Thread [Next in Thread]