¿Hay una manera de tener argumentos de la función mutables en F #, que permitiría algo así comoF # argumentos de la función mutable
let mutable i = 9
let somefun n = n <- 12;()
somefun i
(* *not* a real-world example *)
entiendo que esto puede ser hecho para trabajar envolviéndolo en un tipo de registro
type SomeRec = { mutable i: int }
let ri = { i = 9 }
let someotherfun r = r.i <- 12;()
y que esto se puede hacer de manera similar para los miembros de la clase. Sin embargo, incluso después de navegar a través de toda la especificación de lenguaje F # (sí, lo hice!), Parece que no hay sintaxis para permitir el primer caso, y el compilador parece estar bastante descontento con mi intento de esto. Esperaba que hubiera algún tipo de anotación de tipo, pero mutable no se puede usar en tal.
También sé que no debería estar haciendo este tipo de cosas en primer lugar, pero el primer caso (vinculación int
) y el segundo tipo (record
) son semánticamente idénticos, y cualquier objeción se aplicaría para ambos casos Igualmente.
Así que creo que me falta algo aquí.
Si necesita mutar sus parámetros, todavía está pensando de forma imperativa. ¿Puede describir exactamente lo que está tratando de hacer, tal vez alguien puede sugerir una solución más idiomática en su lugar? – Juliet