From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 107f24,626a0a064b320310 X-Google-Attributes: gid107f24,public X-Google-Thread: f4fd2,626a0a064b320310 X-Google-Attributes: gidf4fd2,public X-Google-Thread: 10259a,626a0a064b320310 X-Google-Attributes: gid10259a,public X-Google-Thread: 103d24,626a0a064b320310 X-Google-Attributes: gid103d24,public X-Google-Thread: 1164ba,626a0a064b320310 X-Google-Attributes: gid1164ba,public X-Google-Thread: 114809,626a0a064b320310 X-Google-Attributes: gid114809,public X-Google-Thread: 103376,ea8ea502d35ca2ce X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2001-05-17 07:08:06 PST Path: archiver1.sj.google.com!newsfeed.google.com!sn-xit-03!supernews.com!news-xfer.nuri.net!enews.sgi.com!newsfeed.mathworks.com!news.mathworks.com!uunet!ash.uu.net!nntphub.cb.lucent.com!news.research.bell-labs.com!news From: Matthias Blume Newsgroups: comp.lang.ada,comp.lang.lisp,comp.lang.smalltalk,comp.lang.basic,comp.lang.functional,comp.lang.scheme,comp.lang.perl Subject: Re: Beginner's Language? Date: Thu, 17 May 2001 09:56:27 -0400 Organization: Lucent Technologies, Bell Labs Message-ID: <3B03D88B.E878B018@research.bell-labs.com> References: <9cukad$nn68@news-dxb> <9d6b6e$1bt$1@nh.pace.co.uk> <87snihxiwc.fsf@frown.here> <9dbi83$sji$1@nh.pace.co.uk> <87heyu7cqd.fsf@frown.here> <9dc20p$hh15e$1@ID-37382.news.dfncis.de> <3B003CA2.D24D083C@research.bell-labs.com> <3b02a7d0$1@news.microsoft.com> <3B02E7E3.D3640D53@research.bell-labs.com> <07a6gt8v3c5vd229vqn7gpg5e4fmlq19r5@4ax.com> NNTP-Posting-Host: blume-pcmh.research.bell-labs.com Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Mailer: Mozilla 4.75 [en] (X11; U; Linux 2.2.16-3 i686) X-Accept-Language: en, de, ja Xref: archiver1.sj.google.com comp.lang.ada:7613 comp.lang.lisp:10219 comp.lang.smalltalk:9776 comp.lang.functional:5700 comp.lang.scheme:3878 comp.lang.perl:2802 Date: 2001-05-17T09:56:27-04:00 List-Id: a@b.c wrote: > > On Wed, 16 May 2001 16:49:39 -0400, Matthias Blume > wrote: > > >is pointless, and I DO NOT agree about functions. In C functions are function > >pointers, and they are completely first-class because they can be used "as > > In C, a function has to have a name, and it can't be instantiated at run time > from data available only at run time. If that's first class, what class is a > Lisp lambda? Do ordinal numbers go that low? You are confusing issues. C functions are not exactly the same as functions in functional programming languages. C functions are first-order (not to be confused with first-class). This means that there are no _nested_ functions. If you leave out the nested functions from, say, ML (without perturbing anything else), you get precisely the C model. You can still pass these functions around with abandon, but in implementation terms you don't need more than one instance of each one. So the problem is one of terminology: ML- (or Lisp-) functions are first class. C functions are first class. But: ML functions and C functions are not the same concept. Because: ML functions are higher-order. C functions are first-order. In other words, C functions are first-class for what they are, but this does not mean that they are in some way equivalent to ML functions. Think of it like this: We can say: "C integers are first class" (which is undisputed, or so I hope), but C _integers_ are in no way equivalent to ML _reals_ (which are also first class but otherwise different). Matthias