2013-05-05 15 views
6

las ich den Code unten in Indexed MonadWas haben diese eckigen Klammern in 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 
    |] 

Was ist die Syntax dieser Symbole [|....|]?

Ist es eine Art Syntaxzucker?

+1

Dies ist [Vorlage Haskell] (http://www.haskell.org/haskellwiki/Template_Haskell). –

Antwort

8

Dies ist quasiquotation Syntax. Siehe auch die wiki page. Der Text zwischen [ido| und |] wird wörtlich an den Quasiquoter ido übergeben, der es verwendet, um einige Haskell-Code zur Kompilierzeit zu generieren.

Verwandte Themen