La programación de orden superior es un estilo de programación informática que utiliza componentes de software, como funciones, módulos u objetos, como valores. Por lo general, se crea una instancia con modelos de cálculo, o se toma prestado de ellos, como el cálculo lambda , que hace un uso intensivo de funciones de orden superior . Un lenguaje de programación puede considerarse de orden superior si los componentes, como procedimientos o etiquetas, pueden usarse como datos. Por ejemplo, estos elementos podrían usarse de la misma manera que argumentos o valores. [1]
Por ejemplo, en programación de orden superior, se pueden pasar funciones como argumentos a otras funciones y las funciones pueden ser el valor de retorno de otras funciones (como en macros o para interpretación ). Este estilo de programación se utiliza principalmente en programación funcional , pero también puede resultar muy útil en programación orientada a objetos . Una interpretación ligeramente diferente de la programación de orden superior en el contexto de la programación orientada a objetos son los mensajes de orden superior , que permiten que los mensajes tengan otros mensajes como argumentos, en lugar de funciones.
Ejemplos de lenguajes que soportan esto son Ada , Wolfram Language , C# , Java , ECMAScript ( ActionScript , JavaScript , JScript ), F# , Haskell , Lisp ( Common Lisp , Scheme , Clojure , otros), Lua , Oz , Perl , PHP , Prolog , [2] Python , Ruby , Smalltalk , Scala , ML y Erlang .