title: Programmazione di ordine superiore
text: # Programmazione di ordine superiore
  
  La programmazione di ordine superiore è uno stile di programmazione che usa componenti software, come funzioni, moduli o oggetti come valori. È tipicamente istanziazione, o trae elementi da, modelli di calcolo come il lambda calcolo, che fanno uso di funzioni di ordine superiore.
  
  Ad esempio, nella programmazione di ordine superiore le funzioni possono essere passate come argomenti e restituite come risultato di altre funzioni. Questo paradigma è comune nella programmazione funzionale, ma viene talvolta impiegato anche nella programmazione orientata agli oggetti, nella quale si concretizza anche nei messaggi di ordine superiore, che possono avere come argomenti altri messaggi.
  
  Tra i linguaggi che supportano la programmazione di ordine superiore vi sonoJava, ECMAScript (ActionScript, JavaScript, JScript), F#, Haskell, Lisp (Common Lisp, Scheme, Clojure, Racket), Lua, Oz, Perl, Prolog, Python, Ruby, Wolfram Language, C#, Smalltalk, Scala, ML e Erlang.
  
  