Python and Ruby
no.email at nospam.invalid
Mon Feb 1 05:22:36 CET 2010
Terry Reedy <tjreedy at udel.edu> writes:
> Three of you gave essentially identical answers, but I still do not
> see how given something like
> def f(): return 1
> I differentiate between 'function object at address xxx' and 'int 1'
In the languages they are talking about, there is no such thing as a
function with no args. A function is closer to a mathematical function,
i.e. a mapping from one type to another, so every function has an arg.
Haskell and ML do have a "Unit" type, written "()", which is something
like Python's "None". So in Haskell you could write
f () = 1
which means the function f, applied to the Unit value (), results in the
value 1. The parens are not function-calling syntax. () is simply a
value. For example, you could say
y = ()
z = f y
which would mean that z = 1.
More information about the Python-list