10
我一直在試圖尋找在哈斯克爾參考使用這樣的:
getHomeR = defaultLayout $ do
setTitle "My Awesome Site"
$(widgetFile "home")
具體做法是:
$(widgetFile "home")
我知道$運營商給出的優先無論是它的權利,但我一直無法理解$()的用法。任何人?
我一直在試圖尋找在哈斯克爾參考使用這樣的:
getHomeR = defaultLayout $ do
setTitle "My Awesome Site"
$(widgetFile "home")
具體做法是:
$(widgetFile "home")
我知道$運營商給出的優先無論是它的權利,但我一直無法理解$()的用法。任何人?
這不是使用$
應用程序運算符,而是涉及Template Haskell slice。
非常粗略地,widgetFile "home"
是在編譯時運行的代碼:它生成Haskell代碼,然後像往常一樣編譯。它是Haskell中metaprogramming的一種形式。
我看到這麼有無關$操作符。 'widgetFile「home」'然後將負責在編譯時動態生成此代碼? –
@LuisDosReis是的。例如,它可能訪問外部文件,處理它並根據它生成一些Haskell代碼。這可以用來獲得廣泛的'#include',例如,包含的文件可以使用不同的語法。 – chi
哦有趣,所以我可以應用元編程操縱不同的語言。 –