2010-10-19 16 views
7

La mia comprensione superficiale delle variabili in f # suggerisce che dichiarare una variabile come "mutabile" e utilizzare una variabile "ref" essenzialmente entrambe fanno la stessa cosa. Sono entrambi modi diversi per affrontare lo stesso problema di fondo: una tolleranza limitata e strutturata di mutabilità in un linguaggio funzionale senza dover ricorrere all'IO Monade. Che ci sia un diverso tecnico è stato "astratto" dalla mia comprensione.Variabili mutabili vs variabili in termini di cattura

  1. Se questo è il caso, perché le chiusure non possono catturare variabili mutabili, ma possono catturare istanze di riferimento?
  2. Più in generale, qual è la differenza tecnica tra le due forme che consente questa differenza?
  3. Qual è lo scopo da un punto di vista del design del linguaggio di introdurre due scorciatoie di mutevole piuttosto che uno solo?

Mi dispiace se questo è un multi-parter, ma sembrano tutti correlati.

risposta