【问题标题】:Basic Yesod Hello World! giving me parse error基本 Yesod 你好世界!给我解析错误
【发布时间】:2016-01-15 22:22:24
【问题描述】:

我开始通过使用 Haskell 和 Yesod 开发 Web 应用程序这本书来学习 Yesod。安装一些要求后,本书让您做的第一件事是写一个Hello World! 尽管从书中逐字复制程序,但我遇到了解析错误。作为一点背景知识,我没有 web 开发经验,而且我对 Haskell 的了解几乎包含在 Learn You a 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)

【问题讨论】:

  • 这只是一个疯狂的猜测 - 但您是否尝试过将第 11 行 (/ HomeR GET) 缩进至少 2 个空格 - 或者将 mkYesod 直到 |] 放在一行中?
  • 只是猜测:尝试使用[parseRoutes| 而不是[parseRoutes |(没有空格)?

标签: haskell yesod parse-error


【解决方案1】:

我通过删除准引号行中管道之前的空格来加载您的文件(带有警告),所以[parseRoutes| 而不是[parseRoutes |[whamlet| 而不是[whamlet |

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-19
    相关资源
    最近更新 更多