Message-ID: <3B98C2A9.5FE1A610@csi.com>
Date: Fri, 07 Sep 2001 08:50:49 -0400
From: John Colagioia <JColagioia@csi.com>
Organization: No Conspiracy Here...
X-Mailer: Mozilla 4.77 [en] (Win98; U)
X-Accept-Language: en,fr,ru,es,it,ga,de,ja,gd,eu
MIME-Version: 1.0
Newsgroups: rec.arts.int-fiction
Subject: Re: FOOBLITZKY: The Lost Infocom Work
References: <ad7f7804.0108272254.5ab9d94c@posting.google.com> <6268F53157D1C1DA.E765F169CDBFD783.8999DEFE9987B567@lp.airnews.net> <tpgkc13h6gik21@corp.supernews.com> <DCA2FF5E8A334316.54317DE59BF63459.A366A94744B971E9@lp.airnews.net> <9na3hg$j84$1@news.lth.se>
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
NNTP-Posting-Host: 208.34.37.104
X-Original-NNTP-Posting-Host: 208.34.37.104
X-Trace: excalibur.gbmtech.net 999866936 208.34.37.104 (7 Sep 2001 08:48:56 EST)
Lines: 42
X-Authenticated-User: jnc
X-Original-NNTP-Posting-Host: 127.0.0.1
Path: news.duke.edu!newsgate.duke.edu!solaris.cc.vt.edu!news.vt.edu!netnews.com!newsfeeds.belnet.be!news.belnet.be!newsfeed.online.be!zur.uu.net!bos.uu.net!nyc.uu.net!excalibur.gbmtech.net
Xref: news.duke.edu rec.arts.int-fiction:92310

Magnus Olsson wrote:

> In article <DCA2FF5E8A334316.54317DE59BF63459.A366A94744B971E9@lp.airnews.net>,
> Billy Harris  <wharris@mail.airmail.net> wrote:
> >In article <tpgkc13h6gik21@corp.supernews.com>, L. Ross Raszewski
> ><lraszewski@loyola.edu> wrote:
> >> On Thu, 06 Sep 2001 03:52:44 -0500, Billy Harris
> >> <wharris@mail.airmail.net> wrote:
> >> >------ Example 1
> >> >; Good lisp program have functions which return a function!
> >> Of course; in a proper function-oriented language, returning 1 really
> >> means "return the function whose return value is 1"
> But somewhere along the line you must have an atomic "1", mustn't you,
> or you'll just get an infinite tail recursion: "The number 1 is really
> a function that returns 1, that is, a function that returns a function
> that 1, i.e. a function that returns a function that returns a
> function..." :-)

Actually, no.  In pure functional programming (i.e., Church's Lambda Calculus), you
can get by with nothing more than functions calls and function composition.  For
example, you can define two functions:
    For all x [For all y [return x]]
    For all x [For all y [return y]]
Once you have this, you can define one to be "true," and the other "false," and now
(besides using "false" as your zero value and counting) create basic control
structures:
    For all x [For all y [For all z [return ((a)(b))(c)]]]
(that is, return the middle parameter if the first is "true," and the last if
"false."  NB: There might be a typo in there, someplace--I've never been good at
representing function application)

In any case, you can continue this and build lists and trees and stuff fairly
easily.

Nobody, mind you, actually programs like this (that I know of), and so LISP,
Scheme, ML, and the other nominally functional languages give you things like
predefined constants, variables, and so on.  They usually try not to call them
those things, but they're there...

[...]


