我开始通过使用Haskell和Yesod开发Web应用程序一书来学习Yesod。在安装了一些要求后,本书首先要做的是写Hello World!
尽管从书中逐字复制程序,但我得到一个解析错误。作为一个背景,我没有Web开发的经验,而且我对Haskell的了解几乎包含在了解你的Haskell中,所以我很失落。
以下是上述代码:
-- hello world with Yesod
{-# LANGUAGE TemplateHaskell, TypeFamilies, QuasiQuotes, MultiParamTypeClasses,
OverloadedStrings #-}
import Yesod
data HelloWorld = HelloWorld
mkYesod "HelloWorld" [parseRoutes |
/ HomeR GET
|]
instance Yesod HelloWorld
getHomeR :: Handler RepHtml
getHomeR = defaultLayout [whamlet | Hello World! |]
main :: IO()
main = warpDebug 3000 HelloWorld
编译器告诉我这个:
C:\Haskell\Yesod>runhaskell helloWorld.hs
helloWorld.hs:11:1:
parse error (possibly incorrect indentation or mismatched brackets)
答案 0 :(得分:3)
我通过删除quasiquoter行中管道之前的空格来加载(带警告)文件,因此[parseRoutes|
而不是[parseRoutes |
和[whamlet|
而不是[whamlet |
}。