Chiusura (informatica): differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Riga 17:
In [[ML programming language|ML]], il seguente codice definisce una funzione <tt>f</tt> che restituisce il parametro passatogli più 1:
 
<source lang=ocamlml>
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=ocamlml>
val y = 1;
fun f(x) = x + y;
Riga 40:
La prima chiamata di <tt>f 3</tt> restituisce 4, la seconda invece 8.
 
Per chiarire il ruolo dell'ambiente, si consideri il seguente esempioframmento in [[ML programming language|ML]]:
 
<source lang=ocamlml>
let
val y = 1;