Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Haskell Snap,如何在Snaplet中提升IO单极体_Haskell_Io_Splice_Haskell Snap Framework - Fatal编程技术网

Haskell Snap,如何在Snaplet中提升IO单极体

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。因此

我有一个IO Bool函数,可以给我一些状态信息。我想根据此函数返回的值将“OK”或“KO”写入.tpl文件的拼接部分

因此,我很高兴能够在SnapletiPlice中提升IO monad,这样我就可以将statusSplice::SnapletiPlice App与(“splicename”,statusSplice)绑定,并从内部的IO monad计算值

我很确定SnapletISplice“是”一个IO单子,这样的提升函数应该存在。但我不知道是什么

注意:我使用的是snap 0.11。因此,一些功能(如liftHandle)被删除

简而言之,对于代码,我想做的是:

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

st
snapletiplice
HeistT
的别名

HeistT
实现
MonadIO


所以如果导入的话,
liftIO
应该可以工作了

我刚刚又试了一次,效果很好。我第一次尝试的时候就应该犯一个愚蠢的错误。谢谢