Path: utzoo!utgpu!watserv1!watmath!att!occrsh!uokmax!apple!usc!cs.utexas.edu!uunet!mcsun!ukc!edcastle!aiai!jeff From: jeff@aiai.ed.ac.uk (Jeff Dalton) Newsgroups: comp.lang.functional Subject: Re: Is Lisp in class X? Message-ID: <2632@skye.ed.ac.uk> Date: 3 Jun 90 17:10:00 GMT References: <14810@dime.cs.umass.edu> Reply-To: jeff@aiai.UUCP (Jeff Dalton) Organization: AIAI, University of Edinburgh, Scotland Lines: 36 In article <14810@dime.cs.umass.edu> pop@cs.umass.edu () writes: >I would say that most Lisps fall short of being in X because they do not >provide a proper treatment of function variables i.e. you cannot say >(F X1 .... XN) where F is a variable - you have to do some funny >circumlocution which I don't remember. Another in the Traditional Complaints series ("Collect them all!"). Since this has already been debated, at length, in Comp.lang.lisp, let me just say that opinions differ as to how significant it is that in some Lisps the syntax for calling function values (it's any function-valued expression, not just variables) is something like (funcall f x1 ... xn) or (apply* f x1 ... xn) rather than just (f x1 ... xn). >The binding of functions to function names in LISP is of a different >nature from variable bindings. One could just as well say they have the same nature but happen to be independent. >Scheme, somewhat tardily, provides a LISP dialect that gets it right. Tardily, i.e., in 1975. Lisp 1.5, which also lets you write (F ...), goes back at least to 1962. >one of the reasons that Edinburgh got it right earlier (POP-2 -> Hope -> ML) I would not say Pop got it right, because (1) variables in Pop have dynamic scope and (2) closures have to have an explicit annotation listing the variables to close over [cf FUNCTION in Lisp 1.5]. I regard these as more significant defects. -- Jeff