2013-05-05 20 views
6

czytam poniższy kod w Indexed MonadCo te nawiasy kwadratowe w Haskell?

{-# LANGUAGE QuasiQuotes #-} 
import Control.Monad.Indexed.State 
import Control.Monad.Indexed 
import Language.Haskell.IndexedDo 

hoge :: IxState Int [Int]() 
hoge = [ido|do 
    imodify (*10) 
    imodify show 
    imodify reverse 
    imodify (++"123") 
    imodify $ map fromEnum 
    |] 

Jaka jest składnia tych symboli [|....|]?

Czy jest to rodzaj cukru składniowego?

+1

To jest [Template Haskell] (http://www.haskell.org/haskellwiki/Template_Haskell). –

Odpowiedz

8

To jest składnia quasiquotation. Zobacz także wiki page. Tekst pomiędzy [ido| i |] jest dosłownie przekazywany quasiquoterowi ido, który wykorzystuje go do generowania kodu Haskella podczas kompilacji.

Powiązane problemy