我的F#代码是这样的:
let ran = new System.Random()
let makeVal = ran.NextDouble()
为什么当我使用makeVal时,我会在应用程序会话的一次运行中的每次调用中得到相同的随机数(即它不是种子问题)。
答案 0 :(得分:2)
默认情况下,F#中的值是不可变的。所以makeVal
在第一次绑定后不会改变。要获得不同的随机值,您应该再次调用ran.NextDouble()
。
例如,使用函数:
let makeVal() = ran.NextDouble()