Ruby and Python

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

graham <graham73 at> wrote:
>By this definition C has first class functions. Sure you have
>the minor inconvenience of having to take pointers to functions,
>and using dereferencing to call them. But that's a minor point.
>So does C have first class functions?

    You are missing the point that C does not allow you to 
dynamically create new functions at runtime.  You can create
new data types using a malloc but you can only use function pointers 
to manipulate functions that exist at compile time.  This creates
a clear distinction between say an integer that which you create new
instances of at runtime and functions which can only be created at
compile time. Thus, functions don't have the same rights assigned to 
them as data types and are second class in comparision.  If there
is no distinction between data and functions, functions are first 
    The only major quibble you can really have about python's handling
of functions is that runtime creation of objects are limited by 
the restrictions on the lambda function.  However, you can get
around this by chaining a bunch of lambdas together.

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