我想通过打印来调试我的程序
例如,
isPos n
| n<0 = False
| otherwise = True
Run Code Online (Sandbox Code Playgroud)
我想要的东西:
isPos n
| n<0 = False AND print ("negative")
| otherwise = True AND print ("positive")
Run Code Online (Sandbox Code Playgroud)
在Haskell可以做到吗?
bet*_*eta 18
正如hammar所说,trace从Debug.Trace模块中使用.我发现有用的提示是定义函数debug:
debug = flip trace
Run Code Online (Sandbox Code Playgroud)
那你可以做
isPos n
| n < 0 = False `debug` "negative"
| otherwise = True `debug` "positive"
Run Code Online (Sandbox Code Playgroud)
这样做的好处是在开发过程中很容易启用/禁用调试打印.要删除调试打印,只需注释掉其余部分:
isPos n
| n < 0 = False -- `debug` "negative"
| otherwise = True -- `debug` "positive"
Run Code Online (Sandbox Code Playgroud)
ham*_*mar 15
import Debug.Trace
isPos n
| n < 0 = trace "negative" False
| otherwise = trace "positive" True
Run Code Online (Sandbox Code Playgroud)