gpt4 book ai didi

haskell - 从 GHCi 中隐藏随机版本

转载 作者:行者123 更新时间:2023-12-03 23:03:05 25 4
gpt4 key购买 nike

我正在使用 newsynth 包,遇到了一个错误,我开始怀疑这个错误与夏天的更新 random-1.2.0 有关(newsynth 最后一次更新是在 2019 年底,random-1.2.0 是在 6 月份发布的。从那时起我就运行了 cabal update,这这就是为什么两者似乎都已安装。)这是我在 GHCi 中运行的代码:

 λ> import System.Random
λ> import Quantum.Synthesis.Ring
λ> import Quantum.Synthesis.Diophantine
λ> g <- getStdGen
λ> diophantine g (RootTwo 5 0)

<interactive>:5:1: error:
• No instance for (random-1.1:System.Random.RandomGen StdGen)
arising from a use of ‘diophantine’
There are instances for similar types:
instance random-1.1:System.Random.RandomGen
random-1.1:System.Random.StdGen
-- Defined in ‘random-1.1:System.Random’
• In the expression: diophantine g (RootTwo 5 0)
In an equation for ‘it’: it = diophantine g (RootTwo 5 0)

正如在另一篇 SO 帖子中向我建议的那样,我尝试从 GHCi 中隐藏 random 的另一个副本。我跑了

$ ghc-pkg --global --package-db ~/.cabal/store/ghc-8.8.3/package.db list random
~/.ghcup/ghc/8.8.3/lib/ghc-8.8.3/package.conf.d
(no packages)
~/.cabal/store/ghc-8.8.3/package.db
random-1.1
random-1.2.0

所以我尝试了 $ ghc-pkg --global --package-db ~/.cabal/store/ghc-8.8.3/package.db hide random-1.2.0。但是,当错误仍然存​​在时,我还尝试了 $ ghc-pkg --global --package-db ~/.cabal/store/ghc-8.8.3/package.db hide random-1.1 (只是为了确保 hide 做了我想做的事),但莫名其妙地发现在 GHCi 中(即使在重新启动终端后)我能够运行 λ> import System.Random尽管所有已知的 random 实例都被隐藏了。我是否以错误的方式隐藏包裹?

提前谢谢你。


(前几天我问了一个有点相关的问题,但由于我认为这个问题有点不同,所以我认为将其分开是有意义的。如果不是这种情况,我可以更新另一篇文章。)

最佳答案

当你想管理包时,使用 cabal 或 stack。但首先,重置为干净状态:

rm -rf ~/.ghc ~/.cabal
cabal update
cabal v2-repl -b newsynth

这将带您进入 GHCi session ,并提供所需的包。

关于haskell - 从 GHCi 中隐藏随机版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64362142/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com