stringtranslate.com

Programación de orden superior

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 instancia con, o se toma prestado de, modelos de computación como el cálculo lambda que hacen 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, se pueden utilizar como datos. Por ejemplo, estos elementos podrían usarse de la misma manera que los argumentos o valores. [1]

Por ejemplo, en la 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 interpretar ). Este estilo de programación se utiliza principalmente en la programación funcional , pero también puede ser muy útil en la 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 admiten 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 .

Véase también

Referencias

  1. ^ Reynolds, John C. (1972). "Intérpretes definicionales para lenguajes de programación de orden superior" (PDF) . Actas de la conferencia anual de la ACM sobre - ACM '72 (Informe). Vol. 2. Association for Computing Machinery. págs. 717–740. doi :10.1145/800194.805852. ISBN 9781450374927. Recuperado el 19 de diciembre de 2021 .
  2. ^ Naish, Lee (1996). Programación lógica de orden superior en Prolog (informe). Departamento de Ciencias de la Computación, Universidad de Melbourne. CiteSeerX 10.1.1.35.4505 . 

Enlaces externos