Haskell Snap,如何在Snaplet中提升IO单极体
我有一个IO Bool函数,可以给我一些状态信息。我想根据此函数返回的值将“OK”或“KO”写入.tpl文件的拼接部分 因此,我很高兴能够在SnapletiPlice中提升IO monad,这样我就可以将statusSplice::SnapletiPlice App与(“splicename”,statusSplice)绑定,并从内部的IO monad计算值 我很确定SnapletISplice“是”一个IO单子,这样的提升函数应该存在。但我不知道是什么 注意:我使用的是snap 0.11。因此,一些功能(如liftHandle)被删除 简而言之,对于代码,我想做的是:Haskell Snap,如何在Snaplet中提升IO单极体,haskell,io,splice,haskell-snap-framework,Haskell,Io,Splice,Haskell Snap Framework,我有一个IO Bool函数,可以给我一些状态信息。我想根据此函数返回的值将“OK”或“KO”写入.tpl文件的拼接部分 因此,我很高兴能够在SnapletiPlice中提升IO monad,这样我就可以将statusSplice::SnapletiPlice App与(“splicename”,statusSplice)绑定,并从内部的IO monad计算值 我很确定SnapletISplice“是”一个IO单子,这样的提升函数应该存在。但我不知道是什么 注意:我使用的是snap 0.11。因此
app = ...
addSplices splices
...
splices = [("spliceName", statusSplice)]
statusSplice :: SnapletISplice App
statusSplice = do
st <- lift $ computeStatus
if st then textSplice "ok" else textSplice "ko"
app=。。。
添加拼接
...
接头=[(“接头名称”,状态接头)]
statusSplice::SnapletiPlice应用程序
状态拼接=do
stsnapletiplice
是HeistT
的别名
HeistT
实现MonadIO
所以如果导入的话,liftIO
应该可以工作了我刚刚又试了一次,效果很好。我第一次尝试的时候就应该犯一个愚蠢的错误。谢谢