Я новичок в haskell, и я пытался выяснить эту проблему на некоторое время. Я хочу сгенерировать список случайного размера с помощью randomRIO, и этот список будет заполнен случайными числами с помощью randomIO. Я попытался подойти к этой проблеме, создав функцию, которая принимает в случайно сгенерированных из randomRIO так:Как создать беспорядочно отсортированный список случайных чисел в Haskell
x <- randomRIO(1,5)
let y = randList x []
сама функция что-то вроде этого:
randList :: Int -> IO [Int] -> IO [Int]
randList 0 xs = return [xs]
randList g xs = do
t <- randomIO
let a = t:randList (g-1) xs
return [a]
Я не знаю, как для обработки монады IO в рекурсивной функции, но именно так я об этом думаю. Любая помощь приветствуется!
Обратите внимание, что это сильно избегали в Haskell, чтобы положить что-то подобное в 'IO'. Лучше принять явный аргумент «RandomGen» (или использовать специализированную монаду, которая делает именно это). – leftaroundabout