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/03/01 Message-ID: #1/1 X-Deja-AN: 591841094 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> <38BC3496.26FE@synquiry.com> <38BC73CC.54B8@synquiry.com> Content-Type: TEXT/PLAIN; charset=US-ASCII X-Trace: nntp1.ba.best.com 951932163 219 bpr@206.184.139.136 MIME-Version: 1.0 Newsgroups: comp.lang.ada Date: 2000-03-01T00:00:00+00:00 List-Id: On Tue, 29 Feb 2000, Jon S Anthony wrote: > Brian Rogoff wrote: > > I guess OCaml isn't an FP then. Charles? > > Well, he already claimed it was, so there must be some other > feature(s) of direct Lisp family members that excludes them in his > taxonomy. I see OCaml also has assignment. Yes. OCaml and SML both have references, mutable arrays, and exceptions, which mean they are not "pure" FPs like Haskell and Clean, and much closer to languages like Scheme. My view (grunt programmer in the trenches) is that we judge a language by its support for a particular style, and don't worry about pure/impure distinctions. So, IMO Ada supports the FP style better than C or C++, though Ada 83 doesn't clearly do better since it doesn't have access to subprogram and has to always use generics whereas C can use function pointers. Lisp (ANSI CL), Scheme and the MLs all support FP style *much* better than those languages without first class functions. To me, first class functions are the sine-qua-non of FP, so these are all FPLs. Some might argue that Haskell and Clean do best of all because they are lazy (a little lie; really "non-strict") by default. I don't have enough practical experience here, when I tried to use Haskell in anger I found it way too slow. I apply the same criteria to OOP, logic/relational style, etc. Common Lisp and C++ are interesting in that they support "staged programming" or partial evaluation directly in the language, via procedural macros and templates respectively. Kinda cool, but I understand the Ada position on these features and how they impact maintainability. As I understand it, the consensus in the Lisp community is that macros are to be used sparingly. -- Brian