Что делают эти квадратные скобки в 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
|]
каков синтаксис этих символов [|....|] ?
это какой-то синтаксический сахар ?
1 ответов
Это quasiquotation синтаксис. См. также страница wiki. Текст между [ido| и |] передается дословно квазиквотеру ido, который использует его для генерации некоторого кода Haskell во время компиляции.