由于缩进而调试显式字符

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了由于缩进而调试显式字符相关的知识,希望对你有一定的参考价值。

由于压痕,Haskell automatically inserts分号和括号。在this answer中,类型错误用于让ghci用明确显示的分号和大括号打印代码。如何在没有错误的情况下查看这些插入后的代码?我希望应该有像gcc-E标志,它显示宏预处理后的代码。

答案
$ cat >> Hello.hs
main = do
    putStr "Hello, "
    putStrLn "World!"

$ ghc -ddump-ds Hello.hs   # ds for "desugar"
[1 of 1] Compiling Main             ( Hello.hs, Hello.o )

==================== Desugar (after optimization) ====================
Result size of Desugar (after optimization)
  = {terms: 18, types: 9, coercions: 0, joins: 0/0}

-- RHS size: {terms: 8, types: 3, coercions: 0, joins: 0/0}
main :: IO ()
[LclIdX]
main
  = >>
      @ IO
      GHC.Base.$fMonadIO
      @ ()
      @ ()
      (putStr (GHC.CString.unpackCString# "Hello, "#))
      (putStrLn (GHC.CString.unpackCString# "World!"#))

-- RHS size: {terms: 2, types: 1, coercions: 0, joins: 0/0}
:Main.main :: IO ()
[LclIdX]
:Main.main = GHC.TopHandler.runMainIO @ () main

-- RHS size: {terms: 5, types: 0, coercions: 0, joins: 0/0}
Main.$trModule :: GHC.Types.Module
[LclIdX]
Main.$trModule
  = GHC.Types.Module
      (GHC.Types.TrNameS "main"#) (GHC.Types.TrNameS "Main"#)

我怀疑你的味道有点过于扩大,但它肯定不再有块压痕了。

以上是关于由于缩进而调试显式字符的主要内容,如果未能解决你的问题,请参考以下文章

markdown列表中的缩进

片段中ListView的setOnItemClickListener

谷歌浏览器调试jsp 引入代码片段,如何调试代码片段中的js

Mac OS修改VSCode Go的默认缩进格式

Python-编码规范相关

调试Mac应用程序时“来自调试器的消息:由于代码签名错误而终止”?