Differenze tra le versioni di "Chiusura (informatica)"

In [[ML programming language|ML]], il seguente codice definisce una funzione <tt>f</tt> che restituisce il parametro passatogli più 1:
 
<source lang=mlocaml>
fun f(x) = x + 1;
</source>
Se una funzione utilizza variabili libere, ossia non locali, al momento della sua definizione si crea una chiusura che ''cattura'' tali variabili. Per esempio, in questo frammento di codice:
 
<source lang=mlocaml>
val y = 1;
fun f(x) = x + y;
Per chiarire il ruolo dell'ambiente, si consideri il seguente frammento in [[ML programming language|ML]]:
 
<source lang=mlocaml>
let
val y = 1;
Utente anonimo