Html 哈斯凯尔/哈姆雷特的问题

Html 哈斯凯尔/哈姆雷特的问题,html,haskell,functional-programming,hamlet,Html,Haskell,Functional Programming,Hamlet,我是haskell的初学者,我正在尝试使用hamlet,但是我没有掌握正确的语法。当我使用此代码时: {-# LANGUAGE NoImplicitPrelude #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE TypeFamilies #-} module Handler.Index where

我是haskell的初学者,我正在尝试使用hamlet,但是我没有掌握正确的语法。当我使用此代码时:

{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE TypeFamilies #-}
module Handler.Index where

import Import
import Network.HTTP.Types.Status
import Database.Persist.Postgresql

getIndexR :: Handler Html
getIndexR = defaultLayout $ do
addStylesheet $ StaticR bootstrap_css
[hamlet|
        $doctype 5
        <html>
            <head>

            <body>

        |]

[cassius|
        .classe
            background: red;
        |]
{-#语言无mplicitprelude}
{-#语言重载字符串}
{-#语言模板haskell}
{-#语言MultiParamTypeClasses}
{-#语言类型族{-}
模块处理程序。索引在哪里
进口
导入Network.HTTP.Types.Status
导入Database.Persist.Postgresql
getIndexR::Handler Html
getIndexR=defaultLayout$do
addStylesheet$StaticR引导\u css
[哈姆雷特|
$doctype 5
|]
[卡修斯|
classe先生
背景:红色;
|]
我得到这个错误:

romefeller:~/workspace/yesodvazio (master) $ stack build && stack exec 
aulahaskell
aulahaskell-0.0.0: build (lib + exe)
Preprocessing library aulahaskell-0.0.0...
[8 of 9] Compiling Handler.Index    ( src/Handler/Index.hs, .stack-
work/dist/x86_64-linux/Cabal-1.24.2.0/build/Handler/Index.o )

/home/ubuntu/workspace/yesodvazio/src/Handler/Index.hs:18:17: error: parse 
error on input ‘<’

--  While building package aulahaskell-0.0.0 using:
  /home/ubuntu/.stack/setup-exe-cache/x86_64-linux/Cabal-
simple_mPHDZzAJ_1.24.2.0_ghc-8.0.2 --builddir=.stack-work/dist/x86_64-
linux/Cabal-1.24.2.0 build lib:aulahaskell exe:aulahaskell --ghc-options " -
ddump-hi -ddump-to-file"
Process exited with code: ExitFailure 1
romefeller:~/workspace/yesodvazio(master)$stack build和&stack exec
奥拉哈斯克尔
aulahaskell-0.0.0:生成(lib+exe)
预处理库aulahaskell-0.0.0。。。
[8/9]编译Handler.Index(src/Handler/Index.hs,.stack-
work/dist/x86_64-linux/Cabal-1.24.2.0/build/Handler/Index.o)
/home/ubuntu/workspace/yesodvazio/src/Handler/Index.hs:18:17:错误:parse
输入“时出错您需要启用:

{-# LANGUAGE QuasiQuotes #-}
GHC不使用
TemplateHaskell
或其他方法来解析
[hamlet |…|]
子句,就像它是列表理解的开始一样,如下所示:

[ hamlet | hamlet <- ["alas", "poor", "yorick"] ]
^^^^^^^^^^ -- GHC thinks you're starting to write this
           -- and can't parse the rest.
[hamlet | hamlet您需要启用:

{-# LANGUAGE QuasiQuotes #-}
GHC不使用
TemplateHaskell
或其他方法来解析
[hamlet |…|]
子句,就像它是列表理解的开始一样,如下所示:

[ hamlet | hamlet <- ["alas", "poor", "yorick"] ]
^^^^^^^^^^ -- GHC thinks you're starting to write this
           -- and can't parse the rest.

[哈姆雷特|哈姆雷特谢谢你的回答,但是现在我在$doctype 5行:/home/ubuntu/workspace/yesodvazio/src/Handler/Index.hs:16:9:error:parse error on input'$'上遇到了一个错误。也许你打算使用TemplateHaskellI删除了TemplateHaskell并添加了quasikotes行,就像你说的那样,然后出现了“[hamlet |”和“[cassius |”行出现错误,因为我忘了在|之间使用空格,在这之后,我在上面粘贴的错误显示了不,不要在
之前添加空格。我在示例中只显示空格,以向您显示Haskell将其解析为列表理解(通常使用空格编写).删除您的共享空间--它必须以
[hamlet |…
后面的空格很好,但不是在前面。是的,所以你的问题解决了,你还有其他问题:一方面,你没有定义
引导\u css
。堆栈溢出不是代码调试或代码编写服务,所以我认为没有人愿意进行扩展对话在注释中,帮助您修复代码中的所有错误。现在您有了一个与旧问题无关的新问题,我建议您提交一个新问题,并用一个准确的答案演示新的错误消息。感谢您的回答,但现在我发现$doctype 5行有一个错误:/home/ubuntu/workspace/yesodvazio/src/Handler/Index.hs:16:9:error:parse error on input“$”可能您打算使用TemplateHaskellI删除了TemplateHaskellI并添加了Quasikotes行,正如您所说,然后在“[hamlet |”和“[cassius |”处出现了一个错误行,因为我忘记了在|之间使用空格,在这之后,我在上面粘贴的错误显示为No,不要在
|
之前添加空格。在我的示例中,我只显示空格是为了向您显示Haskell将其解析为列表理解(通常使用空格编写)。删除您的空格--它必须以
开头[hamlet |…
后面的空格很好,但不是在前面。是的,所以你的问题解决了,你还有其他问题:一方面,你没有定义
引导\u css
。堆栈溢出不是代码调试或代码编写服务,所以我认为没有人愿意进行扩展对话在注释中,帮助您修复代码中的所有错误。现在您有了一个与旧问题无关的新问题,我建议您提交一个新问题,并提供一个准确的示例来演示新的错误消息。