gpt4 book ai didi

Haskell,字符串与...字符串?

转载 作者:行者123 更新时间:2023-12-02 11:58:15 25 4
gpt4 key购买 nike

我目前正在关注他们网站上的 Happstack lite 教程。 http://happstack.com/page/view-page-slug/9/happstack-lite-tutorial

现在,我正在实现 echo 函数,编译器给了我一条我不太理解的错误消息。这是我的代码:

echo :: ServerPart Response
echo =
path $ \(msg :: String) ->
ok $ template "echo" $ do
h1 "Echo service"
p "Giant, Haskell style Papagallo"
p msg

这是错误消息:

src/motiondude.hs:35:15:
Couldn't match type `[Char]' with `Text.Blaze.Internal.MarkupM ()'
Expected type: Html
Actual type: String
In the first argument of `p', namely `msg'
In a stmt of a 'do' block: p msg
In the second argument of `($)', namely
`do { h1 "Echo service";
p "Giant, Haskell style Papagallo";
p msg }'

我认为用引号引起来的“东西”,就像

"Giant, Haskell style Papagallo"

是一个字符串。然而,根据我对编译器错误的理解,p 不会接受字符串作为参数。有人可以向我解释一下吗?

最佳答案

问题是您似乎已经启用了 OverloadedString 扩展,这意味着

"foo" :: IsString a => a

要将普通的旧String强制转换为任何实现IsString的内容,只需使用fromString。然而,在这种情况下,Happstack 有一个看起来更合适的函数 html

关于Haskell,字符串与...字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22619953/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com