gkj@doc.ic.ac.uk (Guido K Jouret) (05/25/90)
In article <1990May15.152529.7427@watdragon.waterloo.edu> gvcormack@watdragon.waterloo.edu (Gordon V. Cormack) writes: [verbiage deleted] >I would like to see suggestions for words to describe: > > (a) programming or programming languages in which function > abstraction and application completely replace any notion of > state. > > (b) programming or programming languages in which higher order > functions (value-returning procedures if you prefer) are > used extensively. > >I believe "pure functional" or "applicative" both describe (a) >unambiguously. There appears to be no widely accepted term for (b), >even though (b) is a very important programming methodology/language >design issue. > >So, you purists that take "functional" to mean "pure functional", what >do you call (b). I'm not particularly interested in Orwellian >arguments that say I shouldn't be able to express such a concept. > >Here is a test for your new phrase. Substituting it for X below should >yield a true statement. > > FP, Miranda, Scheme and ML are X, but > Ada, Fortran, and C are not X. Yawn... Anybody care to define the expression "to flog a dead horse" in a functional context? Anybody aside from dedicated sophists really think that exercises like this are useful, informative, conclusive, or likely to instantaneous peace, happiness, and nirvana? Yo! 'nuff said already. Guido... ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ / email: gkj@uk.ac.ic.doc = Humor is like a frog: \ | rmail: Functional Programming Section = | | Dept. of Computing = It can be dissected, but | | Imperial College = usually dies in the | | London SW7 2BZ = process. | | U.K. = | \ tel: 44-71-589-5111 xt: 7532 = / ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
wolfson@amtfocus.UUCP (Steve Wolfson) (05/25/90)
In <1990May15.152529.7427@watdragon.waterloo.edu> gvcormack@watdragon.waterloo.edu (Gordon V. Cormack) writes: >I have my opinion on the 'right' definition, but regardless of which >opinion I hold, I know that a large number of people will misunderstand >my meaning. >Whenever a convention or usage is so misunderstood, it must be >discarded. Americans and the rest of the world can't agree on what a >gallon is, or on how to write a date (e.g. when on earth is 02-03-91), >so the only solution is to have some new standard. >I would like to see suggestions for words to describe: > (a) programming or programming languages in which function > abstraction and application completely replace any notion of > state. > (b) programming or programming languages in which higher order > functions (value-returning procedures if you prefer) are > used extensively. >I believe "pure functional" or "applicative" both describe (a) >unambiguously. There appears to be no widely accepted term for (b), >even though (b) is a very important programming methodology/language >design issue. >So, you purists that take "functional" to mean "pure functional", what >do you call (b). I'm not particularly interested in Orwellian >arguments that say I shouldn't be able to express such a concept. >Here is a test for your new phrase. Substituting it for X below should >yield a true statement. > FP, Miranda, Scheme and ML are X, but > Ada, Fortran, and C are not X. > I'm not sure whether Lisp and Algol 68 are X, not X, or partially X. The problem you are describing is real but will not go away by coming up with a new name for your Class X languages. The classification of anything into a group name is based on the number of similarities the individual sees between A and B. The number of differences to the individual making the classification are small enough for the individual not to exclude something from the class. If we create a new X langauge class, some people would want to include Lisp others would not. Then somewhere someone decides they don't like any of the above language and they write SuperZ. SuperZ is alot like X languages but includes features from APL and Smalltalk and C that the compiler author liked. Now some people will want to put SuperZ into class X others won't but if enough do the homogenity of features you used to create class X will drift and you will be stuck in the same problem, what do you do recreate a new class called X-prime? What about all of the previous literature that describes these things as functional langauges, do we reprint it all using the X name? If not we will be working with 2 terms and realistically the old familiar one wins out. If a term can be understood in context then why change it? Use functional for the whole class and use the qualifier "purely" for the subset of those languages that contain no procedural elements at all (at least that is my assumption of your X classifcation, yours may be different, see the problem...). An author of an text on introductory computer hardware didn't like the usage of the acronyms RAM and ROM. RAM means random access memory and ROM means Read Only Memory. But of course by common usage RAM is used for memory that is both read/write. A ROM by pure definition is really a type of RAM. So the author invented the term WREM (Write/REad Memory). Obviously this new terminology has not taken the computer world by storm, individuals still use the more comfortable RAM and some even still use the older term Core (not so much as in the early days of micros, way back when 10-12 years ago ). Proliferation of new terminology does not alway make for a clearer understanding. Academia is full of individuals who write papers that seem to be more about creating new terminology, paradigms, and analogy rather then useful new ideas (I am not classifying you into this category :-) ). Unless there is an overwhelming reason forced linguistic change just doesn't happen. I don't see the overwhelming need for reclassification here, but then I probably am not as tuned in to the nuances of the subject as you. Lengthy discussions of this should probably be moved to sci.language. Stephen Wolfson E-Mail: ...!uunet!motcid!wolfsons Motorola Cellular or 1501 W. Shure Dr. IL27-1155 wolfson@mot.com Arlington Heights, IL "The nice thing about standards is that there are so many of them from which to choose." - Andrew S. Tannenbaum
manis@cs.ubc.ca (Vincent Manis) (05/26/90)
In article <1990May15.152529.7427@watdragon.waterloo.edu> gvcormack@watdragon.waterloo.edu (Gordon V. Cormack) writes: >Here is a test for your new phrase. Substituting it for X below should >yield a true statement. > > FP, Miranda, Scheme and ML are X, but > Ada, Fortran, and C are not X. > > > I'm not sure whether Lisp and Algol 68 are X, not X, or partially X. Algol 68, like its predecessor Algol 60, had some embarrassing problems. One of Algol 68's bugs was that even though it had procedures as allegedly first-class citizens, higher-order procedures were impossible. This was a consequence of the incredibly baroque type structure (which was all defined in the syntax, and included syntactic categories such as "refety rowsety ROWWSETY nonrow slice", and, in one draft, "FIRM MOIST PARADE"), in which a higher-order procedure would have had to have had an infinitely recursive type, in addition to requiring heap storage for closures. It's a mark of the advances in both programming languages and in hardware and software that neither problem is serious in modern functional languages. -- \ Vincent Manis <manis@cs.ubc.ca> "There is no law that vulgarity and \ Department of Computer Science literary excellence cannot coexist." /\ University of British Columbia -- A. Trevor Hodge / \ Vancouver, BC, Canada V6T 1W5 (604) 228-2394
jeff@aiai.ed.ac.uk (Jeff Dalton) (05/27/90)
In article <1990May15.152529.7427@watdragon.waterloo.edu> gvcormack@watdragon.waterloo.edu (Gordon V. Cormack) writes: >Here is a test for your new phrase. Substituting it for X below should >yield a true statement. > > FP, Miranda, Scheme and ML are X, but > Ada, Fortran, and C are not X. > > I'm not sure whether Lisp and Algol 68 are X, not X, or partially X. How about "even"? Even languages have a even number of letters in their name. "What about Miranda?", you say? Well the correct way to write Miranda is "Miranda(tm)", where (tm) is a trademark character. This defintion has the additional advantage of explaining why Miranda had to be trademarked. Lisp too is an even language. The case for Algol 68 is less clear.
philip@Kermit.Stanford.EDU (Philip Machanick) (05/29/90)
In article <2585@skye.ed.ac.uk>, jeff@aiai.ed.ac.uk (Jeff Dalton) writes: > In article <1990May15.152529.7427@watdragon.waterloo.edu> gvcormack@watdragon.waterloo.edu (Gordon V. Cormack) writes: > >Here is a test for your new phrase. Substituting it for X below should > >yield a true statement. > > > > FP, Miranda, Scheme and ML are X, but > > Ada, Fortran, and C are not X. > > > > I'm not sure whether Lisp and Algol 68 are X, not X, or partially X. > > How about "even"? Even languages have a even number of letters in > their name. "What about Miranda?", you say? Well the correct way > to write Miranda is "Miranda(tm)", where (tm) is a trademark > character. This defintion has the additional advantage of > explaining why Miranda had to be trademarked. > > Lisp too is an even language. The case for Algol 68 is less clear. Algol 68 is clearly an odd language. Philip Machanick philip@pescadero.stanford.edu