Thursday, December 03, 2009

What is a first-class function?

There is a debate about it on Wikipedia, and I am curious:
  1. Does a language have first-class functions if it can use its functions to solve particular problems in a certain manner, or
  2. Does a language have first-class functions if functions are just as flexible as other types in the language itself?
It probably means 1. above, as the second definition would omit most static languages, as they might be able, for example, to take textual input and change it into an internal representation of an integer, but not do the same for a function with similar effort. Someone who exclusively thinks in terms of static languages may not have realized a difference.