
On 12/27/07, Cristian Baboi
http://en.wikipedia.org/wiki/First-class_object
The term was coined by Christopher Strachey in the context of "functions as first-class citizens" in the mid-1960's.[1]
Depending on the language, this can imply: 1. being expressible as an anonymous literal value 2. being storable in variables 3. being storable in data structures 4. having an intrinsic identity (independent of any given name) 5. being comparable for equality with other entities 6. being passable as a parameter to a procedure/function 7. being returnable as the result of a procedure/function 8. being constructable at runtime 9. being printable 10. being readable 11. being transmissible among distributed processes 12. being storable outside running processes
I'll guess that 5,9,12 does not apply to Haskell functions.
I don't think this is meant as a list of requirements, but as examples of what being first class *can* mean. So yes, in Haskell some of these points don't make much sense. -- Sebastian Sylvan +44(0)7857-300802 UIN: 44640862