6

我在 Yesod 项目的首页找到了这段代码:

import Yesod
data HelloWorld = HelloWorld
mkYesod "HelloWorld" [$parseRoutes|/ Home GET|]
instance Yesod HelloWorld where approot _ = ""
getHome = applyLayout [$hamlet|%h1 Hello World|]
main = toWaiApp HelloWorld >>= basicHandler 3000

[$parseRoutes|/ Home GET|]$、|、/ 和 % 符号使用并使用了哪些语言功能[$hamlet|%h1 Hello World|],这些符号有什么作用?

4

1 回答 1

17

那些将是Quasiquotation。这是一种使用 Template Haskell 将另一种语言嵌入到 Haskell 中的方法。quasiquotes 'parseRoutes 和 hamlet 定义了如何解析和解释括号内的内容 [$FOO| ...]。上面的链接中有更多详细信息。

于 2010-07-20T00:06:36.120 回答