在Hamlet中,如何在#{...}
内使用IO操作的结果?
例如:
someIO :: IO String
-----------------
$with stuff <- someIO
<p>#{stuff}
失败
No instance for (blaze-markup-0.6.0.0:Text.Blaze.ToMarkup
(IO String))
arising from a use of `toHtml'
我担心我没有从正确的角度解决问题,有人可以为我解释这个问题吗?
谢谢
答案 0 :(得分:3)
Hamlet只是为普通的Haskell代码提供了一种替代语法,所以像普通的Haskell一样,你必须将不纯的动作分开。换句话说,您需要在模板外部运行IO操作。