De nombreux langages de programmation permettent de passer et de renvoyer des valeurs de fonction, lesquelles peuvent être appliquées aux arguments. Le fait que cela suffise à qualifier les valeurs de fonction d'objets de première classe fait débat.
Certains auteurs exigent la possibilité de créer de nouvelles fonctions à l'exécution pour les qualifier d'objets de « première classe ». Selon cette définition, les fonctions en C ne sont pas des objets de première classe ; elles sont parfois qualifiées d'objets de seconde classe , car elles peuvent néanmoins être manipulées de la plupart des manières mentionnées précédemment (via des pointeurs de fonction ).
En Smalltalk , les fonctions (méthodes) sont des objets de première classe, tout comme les classes Smalltalk. Les opérateurs Smalltalk (+, -, etc.) étant des méthodes, ils sont également des objets de première classe.