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

时间:2012-10-18 17:33:22

标签: haskell ghci

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

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

ghci> let x = 1

ghci> x <- getLine

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

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

1 个答案:

答案 0 :(得分:4)

我不知道有任何办法这样做。

麻烦的是,您可以将某个变量绑定到某个类型的值,编辑源以删除该类型,然后点击重新加载。现在你有一个不再存在的类型的变量。

尽管如此,你仍然认为检测它并不是太难,只丢弃那些没有意义的变量。 (真正有趣的部分可能是当一个类型仍然存在但现在有不同数量的字段,或类似的东西......)