Ala*_*ter 11 haskell functional-programming
我是Haskell的新手,我想知道是否有办法在Haskell中的函数中输出'debug'行?IE我想调试输入函数的值
我目前的代码是
import Prelude
foo(a,b,c)
print("input a : " ++ a)
= a + b + c
main = print(foo(1, 2, 3))
Run Code Online (Sandbox Code Playgroud)
我有编程经验,但这是我第一次接近函数式编程,所以任何帮助都将受到赞赏.
ham*_*mar 19
import Debug.Trace
foo a b c = trace ("input a: " ++ show a) (a + b + c)
main = print (foo 1 2 3)
Run Code Online (Sandbox Code Playgroud)
trace
是一个在返回第二个参数之前打印其第一个参数的函数.但是,它不是引用透明的,所以它只应该用于调试.
另请注意,括号不用于Haskell中的函数应用程序,仅用于分组.
除了@ hammar的建议trace
,你可以使用traceShow
(也来自Debug.Trace,并且只是定义)
import Debug.Trace (traceShow)
foo a b c = traceShow (a, b, c) (a + b + c)
main = print (foo 1 2 3)
Run Code Online (Sandbox Code Playgroud)