Skip to content

Haskell random #6

@ulyanin

Description

@ulyanin

Я пытаюсь сгенерировать случайный массив из JSInt -- конструктор типа JSON

generateArray :: Int -> GeneratorState [JSON]
generateArray 0 = return []
generateArray n = do
gen <- get
let (value, newGen) = randomR (2, 2) gen :: (Int, StdGen)
let (values, newGen') = runState (generateArray $ n - 1) newGen
put newGen'
return (JSInt value : values)

generate :: Int -> JSON
generate seed = JSArray $ evalState (generateArray 10) (mkStdGen seed)

Но когда запускаю, получается [2, 2, 2, 2, 2, 2, 2, ...]

Что я делаю не так?

Вы можете найти мой основной файл с описанием остальных структур в моем форке репозитория
https://github.com/ulyanin/mipt2017/tree/labs/lab2

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions