有没有办法在F#可变函数参数,这将允许像F#可变函数参数
let mutable i = 9
let somefun n = n <- 12;()
somefun i
(* *not* a real-world example *)
我明白通过包装成一个记录类型,这可以使工作
type SomeRec = { mutable i: int }
let ri = { i = 9 }
let someotherfun r = r.i <- 12;()
而且,这可以以类似的方式对类成员来完成。但是,即使在浏览整个F#语言规范(是的,我做过!)之后,似乎没有允许第一种情况的语法,编译器似乎对我的尝试非常不满。我希望会有某种类型的注释,但mutable不能用于这种情况。
我也知道我不应该在做这类事情,但第一个案例(int
绑定)和第二个(record
类型)在语义上是相同的,任何这样的反对都适用于这两种情况一样。
所以我觉得我在这里失去了一些东西。
如果您需要改变参数,您仍然认为命令性的。你能准确地描述你想要做什么,也许有人可以建议一个更习惯的解决方案。 – Juliet 2010-09-23 14:52:36