在 Yesod 中,我有一个填充类型的表单

data Field = Field Text Text text
  deriving Show

当我编写 hamlet html 来显示它时,我遇到了 Field 包含在 Maybe Maybe Field 中的问题。所以在 hamlet 我试图做如下所示 here

(postHomeR 函数中的片段)
let fieldData = case result of
      FormSuccess res -> Just res
      _               -> Nothing

(在哈姆雷特文件中)
<ul>
  $maybe (Field one two three) <- fieldData
  <li>#{show one}

但是,编译时出现 Not in scope: one 错误。为什么变量 one 没有正确创建/填充?

最佳答案

您需要缩进

  • 以便它位于 $maybe 块内。现在,它是 $maybe 的兄弟,因此 $maybe 绑定(bind)的变量不在范围内。

    关于haskell - 如何在 hamlet 中使用 $maybe,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15516004/

  • 10-13 03:07