2013-05-05 20 views
6

私はこれらのシンボル[|....|]の構文は何ですか?Indexed Monadハスケルの角括弧は何ですか?

{-# 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 
    |] 

に以下のコードを読んで

シンタックスシュガーとは何ですか?

+1

これは[Template Haskell](http://www.haskell.org/haskellwiki/Template_Haskell)です。 –

答えて

8

これはquasiquotationの構文です。 wiki pageも参照してください。 [ido||]の間のテキストは、そのままquasiquoter idoに渡され、コンパイル時にいくつかのHaskellコードが生成されます。

関連する問題