Re: Smullyan Shmullyan, give me a real example

Bruno Marchal wrote:
> ...
> I give, for all, one last exercise before introducing diagonalization:
> define recursively in an explicit way the operation [i+1] from the
> preceding operation [i]. If you know a "computer language" (Fortran,
> Lisp, Prolog, c++, Java, whatever ...) write the program. If you don't
> know any such language, read my "combinators posts" and program those
> function with S and K, (if you have the time). Well, just be sure you
>
> Must leave now.
>
> Bruno

I would have thought that my previous result captures this:

> > Generalizing this, given the function in the sequence corresponding to
> > the operation of degree N.
> >
> > f(N,m,n) = f(N-1,m,...f(N-1,m,n)...)         (f(N-1) taken n times)
> >

If we express my "f(i,m,n)" as your "m [i] n", then this would be

m [i] n = m [i-1] (m [i-1] (...(m [i-1] n)...)       ( [i-1] taken n
times )

Or if we just look at "m [i] m" to keep it simpler as you suggest,

m [i] m = m [i-1] (m [i-1] (...(m [i-1] m)...)       ( [i-1] taken n
times )

In terms of a program, in a sort of pseudocode, to compute m [i] n,

initialize result to (m [i-1] n)
do the following n-1 times
set result to (m [i-1] result)
end do

The input is (m [i-1] n), the end "result" is m [i] n.  If we simply
want m [i] m, then set the input to (m [i-1] m).

Of course in a real computer language you would have to worry about
numerical representation and storage.

Tom

Received: by 10.11.53.63 with SMTP id b63mr128186cwa;
Mon, 22 May 2006 09:20:25 -0700 (PDT)
Mon, 22 May 2006 16:20:25 +0000 (UTC)
From: "Tom Caylor" <[EMAIL PROTECTED]>
Subject: Re: Smullyan Shmullyan, give me a real example
Date: Mon, 22 May 2006 09:20:25 -0700
Message-ID: <[EMAIL PROTECTED]>
References: <[EMAIL PROTECTED]>
<[EMAIL PROTECTED]>
<[EMAIL PROTECTED]>
<[EMAIL PROTECTED]>
<[EMAIL PROTECTED]>
<[EMAIL PROTECTED]>
<[EMAIL PROTECTED]>
<[EMAIL PROTECTED]>
<[EMAIL PROTECTED]>
<[EMAIL PROTECTED]>
<[EMAIL PROTECTED]>
<[EMAIL PROTECTED]>
User-Agent: G2/0.2
X-HTTP-UserAgent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT
5.0),gzip(gfe),gzip(gfe)
X-HTTP-Via: 1.0 tus-gate5.raytheon.com:8080 (Squid/2.4.STABLE7)
Mime-Version: 1.0
Content-Type: text/plain

Bruno Marchal wrote:
> ...
> I give, for all, one last exercise before introducing diagonalization:
> define recursively in an explicit way the operation [i+1] from the
> preceding operation [i]. If you know a "computer language" (Fortran,
> Lisp, Prolog, c++, Java, whatever ...) write the program. If you don't
> know any such language, read my "combinators posts" and program those
> function with S and K, (if you have the time). Well, just be sure you
>
> Must leave now.
>
> Bruno

I would have thought that my previous result captures this:

> > Generalizing this, given the function in the sequence corresponding to
> > the operation of degree N.
> >
> > f(N,m,n) = f(N-1,m,...f(N-1,m,n)...)         (f(N-1) taken n times)
> >

If we express my "f(i,m,n)" as your "m [i] n", then this would be

m [i] n = m [i-1] (m [i-1] (...(m [i-1] n)...)       ( [i-1] taken n
times )

Or if we just look at "m [i] m" to keep it simpler as you suggest,

m [i] m = m [i-1] (m [i-1] (...(m [i-1] m)...)       ( [i-1] taken n
times )

In terms of a program, in a sort of pseudocode, to compute m [i] n,

initialize result to (m [i-1] n)
do the following n-1 times
set result to (m [i-1] result)
end do

The input is (m [i-1] n), the end "result" is m [i] n.  If we simply
want m [i] m, then set the input to (m [i-1] m).

Of course in a real computer language you would have to worry about
numerical representation and storage.

Tom

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Everything List" group.
To post to this group, send email to everything-list@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at