ghci:在模块重新加载后将定义的值保留在范围内

JHa*_*nes 7 haskell ghci

我想知道在重新加载模块时是否可以在ghci中保留指定的值?

例如,我在ghci中分配一个值:

ghci> let x = 1
Run Code Online (Sandbox Code Playgroud)

要么

ghci> x <- getLine
Run Code Online (Sandbox Code Playgroud)

进入:r重新加载后,现有模块x不再在范围内.通常是否可以保持分配可用,例如在Python解释器中?(这真的很方便......)

即使实际上ghci中的每一行代表一个(单一地)绑定到下一个的函数,我仍然想知道是否可以保持该状态.

Mat*_*hid 4

我不知道有什么方法可以做到这一点。

问题在于,您可能将某些变量绑定到特定类型的值,编辑源以删除该类型,然后单击重新加载。现在你有一个不再存在的类型的变量。

不过,您可能会认为检测到这一点应该不会太难,并且只丢弃不再有意义的变量。(真正有趣的部分大概是当类型仍然存在但现在具有不同数量的字段时,或者类似的事情......)