Ing*_*das 8 persistence haskell
我有一个C++程序多次调用我的Haskell程序.但是,第一次调用的一些数据需要保留用于后续调用.我知道Haskell默认不支持顶级可变变量,但我想我仍然需要这样的东西.(将我的状态写入文件并将其读回来会起作用,但我想要更原生的东西)
在hackage上我发现了像全局变量或安全全局变量的库,但它们看起来都很旧并且依赖于我已经使用过的旧版本的软件包.这个问题有规范的解决方案吗?
理想情况下,我想拥有顶级功能:
getState :: IO Mystate
writeState :: Mystate -> IO ()
Run Code Online (Sandbox Code Playgroud)
(我想我还应该提到一切都是在FFI的一次hs_init()调用中完成的,所以Haskell程序并没有在调用之间真正退出)
fir*_*dle 10
您可以创建一个全局可变变量:
myGlobalVar :: IORef Int
{-# NOINLINE myGlobalVar #-}
myGlobalVar = unsafePerformIO (newIORef 17)
Run Code Online (Sandbox Code Playgroud)
该 哈斯克尔维基 给出这个作为当前的标准溶液,同时讨论替代方案.
归档时间: |
|
查看次数: |
425 次 |
最近记录: |