Пытаюсь решить проблему 23из 99 проблем Haskell.
И я написал это
rnd_select :: (Eq a) => [a] -> Int -> [a]
rnd_select [] _ = []
rnd_select _ 0 = []
rnd_select ys n =
let
(rnd_index, gen) = randomR (1, length ys) (mkStdGen 200)
(x, xs) = removeAt rnd_index ys
in x : rnd_select xs (n-1)
, которое работает, но я не хочу использовать mkStdGen, а использую
newStdGen or getStdGen
вместо. Я видел решения проблемы, но я хочу понять, как мне исправить этот код, чтобы сделать это, и если это невозможно, почему бы и нет, потому что интуитивно кажется, что он должен работать, но это не так.