我想通过打印一些东西来调试我的程序
例如,
isPos n
| n<0 = False
| otherwise = True
我想要类似的东西:
isPos n
| n<0 = False AND print ("negative")
| otherwise = True AND print ("positive")
可以在 Haskell 中进行吗?
正如 hammar 所说,trace
从Debug.Trace
模块中使用。我发现有用的提示是定义函数debug
:
debug = flip trace
然后你可以做
isPos n
| n < 0 = False `debug` "negative"
| otherwise = True `debug` "positive"
这样做的好处是在开发过程中很容易启用/禁用调试打印。要删除调试打印,只需注释掉该行的其余部分:
isPos n
| n < 0 = False -- `debug` "negative"
| otherwise = True -- `debug` "positive"
import Debug.Trace
isPos n
| n < 0 = trace "negative" False
| otherwise = trace "positive" True