为了调试程序需要,将函数中的变量信息打印出来,支持以下方式: import Debug.Trace 1、 IO action的情况 如 main:: IO() main:: IO () main = do let x = 3 print x putStrLn "Hello world" 2、 非 pure Monad情况,不支持IO 如: numbers :: [Int] numbers = do x <- [1, 2, 3] traceShow x (pure ()) y <- [4, 5, 6] traceShow y (pure ()) pure (x * y) 参考资料: [1] https://stackoverflow.com/questions/53441113/haskell-how-to-print-some-value-in-a-function-for-debugging-purpose