Я использую System.Random
и Random
typeclass в своем приложении для генерации случайных чисел. Однако я хотел бы сгенерировать список случайных поплавков произвольной длины с помощью функции типа randoms :: StdGen -> Int -> ([Float], StdGen)
Без ограничения на получение нового генератора я мог бы легко написать
randoms gen n = (take n $ randoms gen) :: [Float]
Однако это оставляет меня с тем же случайным генератором, с которого я начал, что означает, что если бы я дважды запускал эту функцию в строке, я бы получил тот же список, если бы не пошел и не использовал генератор в другом месте, чтобы получить новый.
Как я могу генерировать бесконечный (или произвольный) список случайных значений, а также "обновлять" мой случайный генератор.