F# 中的随机值

Random values in F#

我有类似这样的 F# 代码:

let ran = new System.Random()
let makeVal = ran.NextDouble()

为什么当我使用 makeVal 时,在应用程序会话 运行 的每次调用中我都会得到相同的随机数(即,这不是种子问题)。

默认情况下,F# 中的值是不可变的。所以 makeVal 在第一次绑定后不会改变。要获得不同的随机值,您应该再次调用 ran.NextDouble()。 例如使用函数:

let makeVal() = ran.NextDouble()