我有上述功能,但是當我調用它時,它會卡住,Data.List.iterate的計算沒有停止。Data.List.iterate懶惰評估沒有發生
rp:: RandomGen g => g -> ([Int], g)
rp g = (map (\x -> (last (fst x))) lst , snd (next g))
where
lst = (Data.List.iterate id ([1], g_second))
(g_first, g_second) = (split g)
爲什麼會發生這種情況?
謝謝!
什麼是'rp'應該做的?如果它應該創建一個隨機列表,則應該傳入隨機列表的期望長度... – Alec
它假設首先結束。不是嗎? –
元組中的第一個參數是無限列表'[1 ..]'因此我的問題是關於長度。 – Alec