2010-07-19 16 views
6

me encontré con este código en la página principal del proyecto 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 

Qué características del lenguaje se utilizan en [$parseRoutes|/ Home GET|] y [$hamlet|%h1 Hello World|] para obtener el $, |,/y% símbolos de trabajo, y lo que hacen los símbolos hacen ?

Respuesta

17

Esos serían Quasiquotation. Es una forma de utilizar Template Haskell para insertar otro idioma en Haskell. Los quasiquotes 'parseRoutes y hamlet definen cómo analizar e interpretar lo que está dentro del paréntesis [$ FOO | ...]. Muchos más detalles en el enlace de arriba.

Cuestiones relacionadas