Я новичок в Haskell и пытаюсь настроить и запустить некоторый код в довольно сжатые сроки, поэтому я делаю что-то более сложное, чем абсолютные основы. Я использую пакет newsynth и хотел бы использовать функцию root_of_negative_one
( документация , источник ). В GHCi я запускаю следующие команды:
Prelude> import Quantum.Synthesis.Diophantine
Prelude Quantum.Synthesis.Diophantine> :set -package random
Prelude Quantum.Synthesis.Diophantine> import System.Random
Prelude Quantum.Synthesis.Diophantine System.Random> let g = getStdGen
Prelude Quantum.Synthesis.Diophantine System.Random> let x = root_of_negative_one g 5
, чтобы попытаться получить квадрат root из -1 mod 5. GHCi возвращает:
<interactive>:7:9: error:
• No instance for (RandomGen (IO StdGen))
arising from a use of ‘root_of_negative_one’
• In the expression: root_of_negative_one g 5
In an equation for ‘x’: x = root_of_negative_one g 5
Я знаю, что root_of_negative_one
требуется ввод типа RandomGen, но я, кажется, недостаточно хорошо понял документацию RandomGen, чтобы выполнить это. Любая помощь приветствуется. Спасибо!