【发布时间】:2016-09-09 14:36:46
【问题描述】:
嗨,我有这个运行解析器的主要方法,
main = do
args <- getArgs
let filename = head args
contents <- readFile filename
let c = parse parseProgram contents
putStrLn "------------------------------------------------"
putStrLn "THE PROGRAM WE HAVE PARSED"
putStrLn "------------------------------------------------"
putStrLn (show ((fst.head) c))
return ()
当我运行这个程序时,对 putStrLn 的前三个调用不会打印到终端,它只显示已解析的程序。
任何帮助将不胜感激,我如何获得所有打印电话?
【问题讨论】:
-
你的命令行缓冲了吗?
-
不过,未能刷新流不应丢弃未刷新的输出。
-
我们无法尝试重现这一点,因为我们不知道
parse parseProgram是什么。 -
@Zubair 您是否一直滚动到提示符?请注意,您的跟踪消息不会出现在横幅之前,而是直接出现在解析结果之前或与它混合在一起。
-
这就是为什么一个可重复的问题是必不可少的。根本问题是你对
parseProgram的定义(我认为那是痕迹出现的地方)。