Languages which are strongly associated with functional programming, such as [[Lisp programming language|Lisp]], [[Scheme programming language|Scheme]], [[ML programming language|ML]], and [[Haskell programming language|Haskell]], all support first-class functions. Other languages which also support them include [[Io programming language|Io]], [[Python programming language|Python]], [[ECMAScript]] ([[JavaScript]]), [[Lua programming language|Lua]], [[Ruby programming language|Ruby]] and [[Scala programming language|Scala]]. Also [[Perl]] supports first-class functions (passed using references to them).
MostThe modern, natively compiled programming languages support functions defined statically at compile time. Most of them, e.g. [[C programming language|C]] and [[Pascal programming language|Pascal]], additionally supportssupport function pointers, which can be stored in data structures and passed as arguments to other functions. Nevertheless, Cthey isare not considered to support first class functions, since, in general, functions cannot be created dynamically during the execution of a program. The closest analog inwould C is that ofbe a dynamically compiled function created by a [[just-in-time compiler]], which is compiled as an array of [[machine language]] instructions in memory and then cast to a function pointer. However, this technique is specific to the underlying hardware architecture and is, therefore, neither general nor portable.