Funciones de primera clase

Esto significa que admite: Algunos teóricos de lenguajes de programación sugieren el requerimiento o soporte para funciones anónimas (funciones literales).

[2]​ En lenguajes con funciones de primera clase, los nombres de las funciones no tienen ningún estatus especial; se tratan como variables ordinarias de tipo función .

A la hora de implementar funciones de primera clase existen ciertas dificultades para pasar funciones como argumentos o devolverlas como resultados, especialmente en presencia de variables no locales introducidas en funciones anidadas y anónimas.

[5]​ En los primeros lenguajes de programación imperativos, estos problemas se evitaron al no admitir funciones como valores de retorno (por ejemplo, ALGOL 60, Pascal) u omitir funciones anidadas y, por lo tanto, variables no locales (p. ej.

Lisp, el primer lenguaje funcional, adoptó el enfoque de alcance dinámico, donde las variables no locales se refieren a la definición más cercana de esa variable en el punto donde se ejecuta la función, en lugar de donde se definió.