我有上述功能,但是当我调用它时,它会卡住,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