我不知道如何使用Data.Random.Source.IO
以多平臺方式生成隨機數。如何在Haskell中使用random-fu和平臺不可知代碼生成隨機數?
我可以使用Data.Random.Source.DevRandom
產生Unix的隨機數,並有使用Data.Random.Source.MWC
GitHub的文檔for Windows中的一個例子,但對於使用Data.Random.Source.IO
沒有示例代碼。
我不知道如何使用Data.Random.Source.IO
以多平臺方式生成隨機數。如何在Haskell中使用random-fu和平臺不可知代碼生成隨機數?
我可以使用Data.Random.Source.DevRandom
產生Unix的隨機數,並有使用Data.Random.Source.MWC
GitHub的文檔for Windows中的一個例子,但對於使用Data.Random.Source.IO
沒有示例代碼。
好,我已經轉換GitHub的例子使用Source.IO
import Data.Random
import Data.Random.Source.IO
logNormal :: Double -> Double -> RVar Double
logNormal mu sigmaSq = do
x <- normal mu sigmaSq
return (exp x)
main = sample (logNormal 5 1) >>= print
您可以在Data.Random.Source.IO
的source,它只是定義了MonadRandom IO
合適的實例看。
您可以生成從列表中均勻隨機數作爲
import Data.Random
import Data.Random.Source.IO
main = sample (randomElement [0..9]) >>= print
所有這些模塊確實是定義'IO'一個'MonadRandom'例如,使用'DevRandom'或'MWC'。所以你像其他任何實例一樣使用它。 –
你可以給一個使用'MonadRandom'的工作片段嗎?我嘗試在我的代碼中用'MonadRandom'查找/替換'DevRandom',但這不起作用。 – mcandre