我想将大量常量粘贴到我的 Haskell 代码中,为了可读性,我希望将其格式化为多行而不是一行。
这可能吗?
最佳答案
你可以做一个准报价人。甚至可能想将其上传到 hackage:
module X where
import Language.Haskell.TH
import Language.Haskell.TH.Quote
import Data.Char
iQQ :: QuasiQuoter
iQQ = QuasiQuoter {
quoteExp = return . LitE . IntegerL . read . filter isDigit,
quotePat = \_ -> fail "illegal integer QuasiQuote \
\(allowed as expression only, used as a pattern)",
quoteType = \_ -> fail "illegal integer QuasiQuote \
\(allowed as expression only, used as a type)",
quoteDec = \_ -> fail "illegal integer QuasiQuote \
\(allowed as expression only, used as a declaration)"
}
和用途:
{-# LANGUAGE QuasiQuotes #-}
import X
value = [iQQ|123
456|]
导致:
Ok, two modules loaded.
*Main> value
123456
或者更大的数字:
value = [iQQ|
44444444444444444444444444444444444444444444444444444444444444444444444444444444
45555555555555555555555555555555555555555555555555555555555555555555555555555555
66666666666666666666666666666666666666666666666666666666666666666666666666666666
|]
在 GHCi 中:
Ok, two modules loaded.
*Main> value
444444444444444444444444444444444444444444444444444444444444444444444444444444444555555555555555555555555555555555555555555555555555555555555555555555555555555566666666666666666666666666666666666666666666666666666666666666666666666666666666
关于haskell - 如何在 Haskell 源文件中包含多行编号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56733918/