Content deleted Content added
m copyediting |
m expanded, more examples of languages that do or don't support fcfs |
||
Line 1:
In [[computer science]], a '''first class function''' is a [[programming language]] construct that allows [[function (programming)|function]]
Support for first class functions is widely considered to be a required feature for [[functional programming language]]s. [[Lisp programming language|Lisp]], [[Scheme programming language|Scheme]], [[ML programming language|ML]], and [[Haskell programming language|Haskell]] are examples of functional programming languages that support first class functions.
Most modern programming languages support functions defined statically at compile time. [[C programming language|C]] additionally supports function pointers, which can be stored in data structures and passed as arguments to other functions. Nevertheless, C is not considered to support first class functions, since in general functions cannot be created dynamically during the execution of a program. The closest analog in C is that of 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.
==See also==
* [[closure (computer science)|closure]]
* [[function object]]
{{compu-stub}}
|