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.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,fded8d14c74b14e5 X-Google-Attributes: gid103376,public From: Brian Rogoff Subject: Re: Looking for Ada Technique Name and References Date: 2000/02/29 Message-ID: #1/1 X-Deja-AN: 591380760 References: <88kegp$iso$1@coward.ks.cc.utah.edu> <88kh6q$j4j$1@coward.ks.cc.utah.edu> <88s90i$8mi$1@ns3.arlut.utexas.edu> <88svc0$nkj$1@coward.ks.cc.utah.edu> <38b32dca@eeyore.callnetuk.com> <38B33F23.4784@synquiry.com> <38BA4C37.919935A8@earthlink.net> <38BB01F3.37BD@synquiry.com> <38BBF58A.ED345864@earthlink.net> Content-Type: TEXT/PLAIN; charset=US-ASCII X-Trace: nntp1.ba.best.com 951845381 205 bpr@206.184.139.136 MIME-Version: 1.0 Newsgroups: comp.lang.ada Date: 2000-02-29T00:00:00+00:00 List-Id: On Tue, 29 Feb 2000, Charles Hixson wrote: > Sorry, my point was that there was a "hierarchy" of languages. I was > ranking them (approximately) by decreasing amount of support for > functional constructs. (Not clear, I realize, as I only gave three > examples, and C [or C++] really is about on a par with Ada.) But there > are several different languages that give different degrees of support. > Even the various dialects of Lisp range from the purely functional (i.e., > where all constructs can be phrased as a functional call with sugar around > it) to Common Lisp. And none of these are what I now think of as the > functional languages: ML, OCaML, etc. Well, the topic has really changed, but if you are going to rank languages based on their support for the functional programming paradigm, I'd give Ada a fairly significant edge over C and C++ since (1) Ada is lexically scoped (2) Ada allows the use of nested subprograms as subprogram parameters to generic instantiations, allowing the crude simulation of downward funargs. In my experience, this captures some small amount of FP style directly which is awful in C and unpleasant in C++ (where you can overload "()" and explicitly pass local state rather than directly referencing variables from an enclosing scope). I hope that the issue of downward funargs is revisited in Ada 0X, since using generics this way is awkward when you've grown accustomed to direct support for this. Robert Eachus mentioned that if you have "apply" you never need iterators. I think that's a bit extreme (and he really meant "fold" ;-) but I also think downward funargs would make that programming style far nicer in Ada. I don't want to start a FP language war in c.l.ada, but why do you consider "Pure Lisp", ML and OCaml functional, Common Lisp not? I use references, arrays, and exceptions in my OCaml code... -- Brian