我一直试图在Haskell参考中找到这个用法:
getHomeR = defaultLayout $ do
setTitle "My Awesome Site"
$(widgetFile "home")
具体做法是:
$(widgetFile "home")
我知道$运算符优先于它的右边,但是我无法理解$()的用法。任何人吗?
答案 0 :(得分:10)
这不是使用$
应用程序运算符,而是涉及Template Haskell slice。
非常粗略地说,widgetFile "home"
是在编译时运行的代码:它生成Haskell代码,然后像往常一样编译。它是Haskell中metaprogramming的一种形式。