Differenze tra le versioni di "Chiusura (informatica)"

la struttura dati chiusura che rappresenta <tt>f</tt> contiene un riferimento alla variabile <tt>y</tt> presente nell'ambiente di definizione, in cui è legata al valore 1.
Poiché in ML il valore di <tt>y</tt> non può cambiare il comportamento di <tt>f</tt> non cambia.
Invece inse linguaggisi cheusa consentonouna l'assegnamentovariabile assegnabile, <tt>f</tt> restituisce il valore del suo parametro sommato al valore di <tt>y</tt> al momento in cui viene chiamata.
Ad esempio in Ocaml:
<source lang=ocaml>
letval y = ref 1;;
let f (x) = x + !y;;
f (3;);
y := 5;;
f (3;);
</source>
La prima chiamata di <tt>f 3</tt> restituisce 4, la seconda invece 8.
28

contributi