Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!ucbvax!agate!bionet!ig!arizona!gudeman From: gudeman@arizona.edu (David Gudeman) Newsgroups: comp.lang.misc Subject: Re: first class functions (opps) Message-ID: <10742@megaron.arizona.edu> Date: 11 May 89 08:08:26 GMT Organization: U of Arizona CS Dept, Tucson Lines: 22 In article <453@sdti.SDTI.COM> turner@sdti.SDTI.COM (Prescott K. Turner) writes: >... Equality >of functions is well-defined in the mathematical domain used to specify >the semantics of the language at hand. Assignment has a straightforward >meaning. In both cases isn't it necessary to add a restriction to the >definition of a clean language in order to omit these operators? The mathematical equality of two functions is not computable. It can be defined, but there is no effective procedure to implement the definition. Languages that _do_ define equality of functions use some decidable approximation of the real equality predicate, such as "Two functions are equal if they are defined by the same code". In general, this is true of any non-finite value (such as real numbers). Assignment is different. Any language with assignment that does not allow function values to be assigned, does not have first-class functions. -- David Gudeman Department of Computer Science The University of Arizona gudeman@arizona.edu Tucson, AZ 85721 {allegra,cmcl2,ihnp4,noao}!arizona!gudeman