3

在 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'

我担心我没有从正确的角度解决这个问题,有人可以为我解释一下这个问题吗?

谢谢

4

1 回答 1

3

Hamlet 只是为普通的 Haskell 代码提供了一种替代语法,所以像普通的 Haskell 一样,你必须将你的不纯操作分开。换句话说,您需要在模板之外运行 IO 操作。

于 2014-04-27T04:58:31.157 回答