Я пытаюсь создать гауссовский дистрибутив в Haskell и отобрать отдельные двойники из этого дистрибутива. Я использую тип NormalDistribution из пакета statistics , и мне кажется, что я создал что-то, что работает через экземпляр этого типа ContGen :
ghci> withSystemRandom (genContVar (normalDistr 0 1) :: (Gen (PrimState IO) -> IO Double))
-0.2029152322129268
Не вдаваясь в подробности, это включает импорт модулей из mw c -random (для withSystemRandom
) и примитива (для аннотации типа, которая требуется для это бегать). В прошлом работа с примитивом обычно означала, что я пропустил API более высокого уровня в пакете, который я пытался использовать.
Есть ли способ отбора образцов у гауссианцев через statistics
и без необходимости primitive