Ruby and Python

Suchandra Thapa ssthapa at
Tue Nov 21 09:26:46 CET 2000

graham <graham73 at> wrote:
>Jeremy Hylton
>> The normal definition of "first class" is an object that can be named
>> and treated as data at runtime.  A first class object can be bound to a
>> variable name, passed as an argument to a function, or returned from a
>> function.  The term has nothing to do with scoping rules.
>So by this definition C has first class functions. Does it?

    C doesn't let you create functions at run time and functions aren't
equivalent to data in C.  I agree with Jeremy on his definition of a
first class object.  Basically a first class object can be handled the 
same way data is.  
    I believe lisp has had first class functions since  fairly early in 
its inception however it did not have lexical scoping  and lexical closures 
until recently.  In fact, I think emacs lisp is still dynamically scoped.
I don't think anyone really thinks that lisp doesn't have first class
function however.

Suchandra Thapa             | "There are only two kinds of math books. 
s-thapaNO at  | Those you cannot read beyond the first 
			    | sentence, and those you cannot read 
			    | beyond the first page."
			    |                       -C.N. Yang

More information about the Python-list mailing list