haskell - 编译器开关打开/关闭调试消息?

标签 haskell ghc

好的,这是一个简单的问题。我写了一个函数debug :: String -> IO () .我想进行设置,以便当我以一种方式编译我的程序时,这个函数会写入标准错误,如果我以另一种方式编译我的程序,这个函数就会变成无操作。是否有一些简单的编译时切换来做到这一点?还是我必须自己实现一些东西?

最佳答案

我认为不涉及 trace是解决这个问题的正确方法。

相反,您可以使用预处理器来禁用/启用调试消息。将以下内容放在单独的文件中:

{-# LANGUAGE CPP #-}
import System.IO

debug :: String -> IO ()
debug message =
#ifdef DEBUG
  hPutStrLn stderr message
#else
  return ()
#endif
{-# LANGUAGE CPP #-}行为当前文件启用 C 预处理器。然后您可以使用ghc -DDEBUG 编译带有/不带调试的文件。或只是 ghc .

关于haskell - 编译器开关打开/关闭调试消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16633123/

相关文章:

haskell - (++) 惰性求值的性能

haskell - 结合两个枚举

performance - GHC 产生冗余核心操作

haskell - 你如何在 Notepad++ 上编译和运行haskell

haskell - 递归到 Haskell 中尚不存在的函数

haskell - 如何检查字符串是否可以在 Haskell 中解析为某种类型?

haskell - 在 Haskell 中编写有状态函数

macos - Mac OS X 上的静态链接 wxHaskell

haskell - 将 --reinstall 标志与 cabal-dev 一起使用

haskell - Word foldl' 没有像 Int foldl' 那样优化