the function as a value: (function foo) evaluates to a function object. #'foo exists as a shorthand notation. To apply such a function object, one must use the funcall function: (funcall #'foo bar baz). Python Explicit partial application with functools.partial since version 2.5, and operator.methodcaller since version 2.6. Ruby The identifier of a regular "function" in Ruby (which is really a method) cannot be used as a value or passed. It must first be retrieved into a Method or Proc object to be used as first-class data. The syntax for calling such a function object differs from calling regular methods. Nested method definitions do not actually nest the scope. Explicit currying with . See also Defunctionalization eval First-class message Kappa calculus – a formalism which excludes first-class functions Man or boy test Partial application Notes References Leonidas Fegaras. "Functional Languages and Higher-Order Functions". CSE5317/CSE4305: Design and Construction of Compilers. University of Texas at Arlington. External links First-class functions on Rosetta Code. Higher order functions at IBM developerWorks Articles with example C code Articles with example Haskell code Compiler construction Data types Functional programming Primitive types Programming language theory Subroutines