我想知道重新加载模块时是否可以在 ghci 中保留分配的值?
例如,我在 ghci 中分配一个值:
ghci> let x = 1
或
ghci> x <- getLine
输入 :r
重新加载现有模块后,x
不再在范围内。通常是否可以保持分配可用,例如在 Python 解释器中? (这真是太方便了……)
即使实际上 ghci 中的每一行都代表一个(单子(monad))绑定(bind)到下一个函数的函数,我仍然想知道是否可以维持该状态。
最佳答案
我不知道有什么方法可以做到这一点。
问题在于您可能将某些变量绑定(bind)到特定类型的值,编辑源以删除该类型,然后单击重新加载。现在你有一个不再存在的类型的变量。
不过,您可能会认为检测到这一点应该不会太难,并且只丢弃不再有意义的变量。 (真正有趣的部分大概是当类型仍然存在但现在具有不同数量的字段时,或者类似的事情......)
关于haskell - ghci:模块重新加载后将定义的值保留在范围内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12960405/