无法在Spock和Lucid中创建的应用程序中显示IO[[String]]



我在Haskell中遇到了Spock、Lucid和IO的问题。我有一个功能

f :: MySQLConn -> IO [[String]]

CCD_ 1的输出是语句"0"的结果;从表中选择*";将[MySQLValue]列表转换为[String]列表。

然后我想使用Spock中的函数f在我的应用程序中显示输出。我试着用一些类似的东西:

(...)
get "history" $ lucid $ do 
let offers = c >>= f
mapM (mapM (p_ . toHtml) ) offers
(...)

其中c用于创建与DB的连接。但它不起作用。一个错误是:";没有因使用"mapM"而引起的(遍历IO(的实例;。

如果我尝试:

get "history" $ lucid $ do 
mapM (mapM (p_ . toHtml) ) [["a", "b"], ["1","x"]]

它是正确的。所以我的问题是——我如何在这个应用程序中使用f的结果?

我认为您可以在getlucid:之间执行IO操作

get "history" $ do
offers <- liftIO $ c >>= f
lucid $ mapM (mapM (p_ . toHtml) ) offers

用CCD_ 7从CCD_。

相关内容

  • 没有找到相关文章

最新更新