2010-07-19 18 views
6

tôi tìm thấy mã này trên trang đầu của dự án 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 

Những tính năng ngôn ngữ được sử dụng trong [$parseRoutes|/ Home GET|][$hamlet|%h1 Hello World|] để có được $, |,/và% những biểu tượng làm việc, và những gì làm biểu tượng làm ?

Trả lời

17

Đó sẽ là Quasiquotation. Đó là một cách để sử dụng mẫu Haskell để nhúng một ngôn ngữ khác vào Haskell. ParseRoutes và hamlet của quasiquotes xác định cách phân tích cú pháp và giải thích nội dung bên trong khung [$ FOO | ...]. Nhiều chi tiết khác tại liên kết ở trên.

Các vấn đề liên quan