正如标题所示,出于某种原因,调试函数时,传递给trace
(以及其变体)函数的消息不能正确显示。简单地刷新stdout/stderr似乎也没有做任何事情。Frege trace not printing
-- Makes it more like Haskell's trace
debug :: String -> α -> α
debug msg f = const f $ trace msg
-- dummy function
polyA :: (Num α) => α
polyA = debug "polyA\n" 0
-- another dummy function
polyB :: (Num α) => α
polyB = debug "polyB\n" polyA
main :: IO()
main = do println (polyB :: Int )
println (polyB :: Int )
println (polyB :: Integer)
输出只是
0
0
什么也没有看到在标准错误(通常由红色文本在Eclipse的控制台来表示)。
也可以使用'traceLn'使它在“实时”打印 – Ingo
@Ingo是的,谢谢!我已经更新了包含该答案的答案。 –