1
fun randomList(n) = let
val theList = []
val min = 1
val max = 75
val nextInt = Random.randRange(min,max)
val r = Random.rand(1,1)
val randomValue = nextInt r
in
if n = 0 then []
else
(randomValue::theList;
randomList(n-1)) end;
randomList(50);
我試圖填充隨機數的列表。我得到 錯誤
Warning: type vars not generalized because of value restriction are instantiated to dummy types (X1, X2,...)
我見過一些不同的 可能的原因,但我無法弄清楚。我需要什麼 更改?我仍然不確定該功能是否可行,因爲我 尚未能完全運行它。如何使一個隨機填充的列表遞歸SML/NJ
好是有道理的。來自Java,SML是完全不同的。感謝您的幫助。我現在唯一的問題是'randomValue'在整個列表中保持不變。每次運行後如何獲得該值以重置?我做隨機數的方式有點令人困惑。我不知道'val r'是怎麼完成的。在java中,我只需要'nextInt',然後'randomValue'就會得到一個隨機值,但在SML中,似乎必須使用3個變量來獲得一個隨機值。 – XXIV
@XXIV更新了代碼'r',封裝了種子的狀態,(實際上是問題)稍微更新了我的答案。 – matt
啊,好吧。我認爲這是種子,但仍然不知道如何處理它。感謝您的鏈接和所有幫助! – XXIV