Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!usc!zaphod.mps.ohio-state.edu!think.com!hsdndev!cmcl2!kramden.acf.nyu.edu!brnstnd From: brnstnd@kramden.acf.nyu.edu (Dan Bernstein) Newsgroups: comp.lang.misc Subject: Re: On whether C has first-class composable functions Message-ID: <24547:Jan822:05:4191@kramden.acf.nyu.edu> Date: 8 Jan 91 22:05:41 GMT References: <442@data.UUCP> <4408:Jan421:44:3391@kramden.acf.nyu.edu> <20021@yunexus.YorkU.CA> Organization: IR Lines: 52 In article <20021@yunexus.YorkU.CA> oz@yunexus.yorku.ca (Ozan Yigit) writes: > In article <4408:Jan421:44:3391@kramden.acf.nyu.edu> > brnstnd@kramden.acf.nyu.edu (Dan Bernstein) writes: > >In article <442@data.UUCP> kend@data.UUCP (Ken Dickey) writes: > >> There is an important property of "first-class" objects missing here. > >> A first-class object does not have to be named. > >Do you have a reference? As always, I'm doing my best to use standard > >terminology; I just haven't seen any references that demand a syntactic > >restriction like that. > There may be many references, though I am not sure if that will that make > any difference whatsoever. It appears that you would prefer to argue than > to look them up. On the contrary. Every reference I've found either (1) doesn't define first-class; (2) makes ``first-class'' so restrictive that nothing in C or Ada can possibly be first-class; or (3) defines ``first-class'' as ``can be passed as an argument and [when there are variables] assigned to variables.'' Note that Dave Gudeman posted a definition equivalent to #3. > Here is one: William Clinger, Semantics of Scheme, February. 1988, BYTE, > pp. 221-227 You have this habit of posting long definitions without verifying that they have anything to do with your point. I asked for a reference that *defines* first-class in any way other than #3. The only statement in what you posted that could possibly be a definition is this one: > All scheme objects are first-class citizens of the language. But the text also gives scheme objects the following ``inalienable right'': > o Objects never die. Question 1: When you posted that definition, did you believe that it defined ``first-class''? (If not, you are not contributing to the discussion.) Question 2: Do you realize that if the properties you posted are taken to define ``first-class,'' then nothing in Ada is ``first-class''? I conjecture that Scheme advertisers have tried to corrupt the meaning of ``first-class,'' by adding properties that make Scheme objects into ``first-class'' objects while making objects in other languages into non-``first-class'' objects. Ozan is drawing upon the Scheme literature alone, but ``first-class'' wasn't invented with Scheme. ---Dan