2
为了好玩,我试图用F#编写一个简单的模拟 Monty Hall problem 问题。F中的闭包和随机数#
我已经创建了一个函数getShow返回三个布尔值(代表门),其中一个是真正随机的阵列(它有一个车它后面)和其它两个假。
let getShow =
let doorWithCar = System.Random().Next(3)+1
[|for door in 1..3 -> door = doorWithCar|]
现在,当我尝试使用产量调用getShow函数来获取节目的顺序,我不断收到第一随机显示重复(我猜的,因为封闭在F#中的工作方式) 。
let shows =
seq { for i in 1 .. 10 do yield getShow} // Keeps generating the same show over and over
什么是调用正确的方式getShow使用产量因此,它实际上调用该函数,并得到一个新的随机阵列功能?
完美,谢谢! – Russell