|Reference to "First-Class Data Type" email@example.com (1992-02-18)|
|re: First-class data types firstname.lastname@example.org (1992-03-05)|
|Re: First-class data types email@example.com (1992-03-05)|
|Re: First-class data types firstname.lastname@example.org (Raul Deluth Miller-Rockwell) (1992-03-06)|
|Re: First-class data types email@example.com (1992-03-06)|
|Re: First-class data types firstname.lastname@example.org (1992-03-05)|
|Re: First-class data types email@example.com (1992-03-09)|
|Re: First-class data types firstname.lastname@example.org (Norman P. Graham) (1992-03-11)|
|From:||email@example.com (Ken Dickey)|
|Date:||Thu, 5 Mar 1992 22:33:23 GMT|
firstname.lastname@example.org (Bill Torcaso) writes:
> There is a nit to pick with the definition of 'first class datatype'
>that asserts any operation can be applied to any object of any first class
>datatype. Consider a language in which functions are first-class:
> What is the XOR of two functions? What is the AND of two functions?
> What is the function-invocation of the integer constant 17? Of the
> floating-point constant 0.5?
These operations are well defined--they all generate errors.
Most people mean 1st class data types have the same language *rights*.
Does it need to have a name?
Can it be created and returned from within a function, passed as a
parameter, stored in a data structure?
More generally, do all data objects satisfy basic design principles
using the same rules? [E.g. see R. Tennent: _Principles of
Programming Langauages_, Prentice Hall, 1981, ISBN 0-13-709873-1
- Principle of Abstraction
- Principle of Correspondence
- Principle of Qualification
For example, in the C language function *pointers* are first class,
but functions are not--you cannot create an unnamed function.
-Ken Dickey email@example.com
Return to the
Search the comp.compilers archives again.