【发布时间】:2018-06-19 14:52:44
【问题描述】:
我的程序有一个我想在 GHCi 中查看的错误:
$ ./my-program < ./my-data
Prelude.foldl1: empty list
我尝试在 GHCi 中更改 stdin 或 getLine,但它似乎不会影响我的程序使用的 getLine,即使我之后加载:
$ ghci
Prelude> import System.IO
Prelude System.IO> getLine <- fmap hGetLine $ openFile "my-data" ReadMode
:l "my-program.hs"
:main
我是否需要重写所有 IO 以获取显式句柄才能在 GHCi 中测试它们?
【问题讨论】:
-
我不是 bash 专家,但我认为您的意思可能是
cat my-data | ./my-program。我认为这应该可行。 -
#UUOC 实际上,
cat my-data | ./my-program和./my-program < ./my-data是等价的,但用于生成一个无用的cat进程……参见。 Stop Piping Cats -
我想知道反对票。关于为什么会有帮助的评论。
标签: haskell testing io interactive ghci