2010-10-19 8 views
7

Mi comprensión superficial de las variables en f # sugiere que declarar una variable como 'mutable' y usar una variable 'ref' esencialmente ambas hacen lo mismo. Ambas son formas diferentes de abordar el mismo problema subyacente: una tolerancia de mutabilidad limitada y estructurada en un lenguaje funcional sin tener que recurrir a la IO Monad. Que haya una técnica diferente ha sido 'abstraída' por mi comprensión.Variables mutables vs Ref en términos de captura

  1. Si este es el caso, ¿por qué los cierres no pueden capturar variables mutables, pero pueden capturar instancias de ref?
  2. Más en general, ¿cuál es la técnica diferente entre las dos formas que permite esta diferencia?
  3. ¿Cuál es el propósito desde el punto de vista del diseño del lenguaje de introducir dos accesos directos de mutabilidad en lugar de solo uno?

Lo siento si esto es un multi-parter, pero todos parecen estar relacionados.

Respuesta

Cuestiones relacionadas