Re: Smullyan Shmullyan, give me a real example

From: Tom Caylor <Daddycaylor.domain.name.hidden>
Date: Mon, 22 May 2006 09:20:25 -0700

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
> follow the idea.
>
> 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

X-Google-Language: ENGLISH,ASCII-7-bit
Received: by 10.11.53.63 with SMTP id b63mr128186cwa;
        Mon, 22 May 2006 09:20:25 -0700 (PDT)
X-Google-Token: _qvdtQwAAACtJ1G4Hlrpr8kdXHeLayAm
Received: from 199.46.245.234 by j73g2000cwa.googlegroups.com with HTTP;
        Mon, 22 May 2006 16:20:25 +0000 (UTC)
From: "Tom Caylor" <Daddycaylor.domain.name.hidden>
To: "Everything List" <everything-list.domain.name.hidden>
Subject: Re: Smullyan Shmullyan, give me a real example
Date: Mon, 22 May 2006 09:20:25 -0700
Message-ID: <1148314825.716674.200690.domain.name.hidden>
References: <14762723.1143066850497.JavaMail.root.domain.name.hidden>
   <200603241938.14450.quentin.anciaux.domain.name.hidden>
   <1143229104.805923.181410.domain.name.hidden>
   <200603242045.08484.quentin.anciaux.domain.name.hidden>
   <1143229759.310865.304480.domain.name.hidden>
   <44245849.3060503.domain.name.hidden>
   <442485EE.6010907.domain.name.hidden>
   <44f38451d0bd50dafb206875eb78cd17.domain.name.hidden>
   <1147793509.349430.290120.domain.name.hidden>
   <020c0db89efdf147a862b8c8e2bee821.domain.name.hidden>
   <1148195305.041978.291700.domain.name.hidden>
   <f9d03231bf44a02ea5974db6518f1aa1.domain.name.hidden>
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
> follow the idea.
>
> 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.domain.name.hidden
To unsubscribe from this group, send email to everything-list-unsubscribe.domain.name.hidden
For more options, visit this group at http://groups.google.com/group/everything-list
-~----------~----~----~----~------~----~------~--~---
Received on Mon May 22 2006 - 12:21:29 PDT

This archive was generated by hypermail 2.3.0 : Fri Feb 16 2018 - 13:20:11 PST