exi*_*onX 6 haskell functional-programming
如何在每次调用时打印haskell中的列表或内容,例如:
funct a list = funct (a + 1) (a : list)
print list here ??????? but how ?
Run Code Online (Sandbox Code Playgroud)
Dan*_*her 11
对于调试,有
import Debug.Trace
funct :: Integer -> [Integer] -> Bool
funct a list = trace (show list) $ funct (a + 1) (a : list)
Run Code Online (Sandbox Code Playgroud)
哪里trace :: String -> a -> a.它unsafePerformIO在引擎盖下使用,所以它是邪恶的,仅用于调试.
请注意,由于延迟评估,调试输出可能会以令人惊讶的顺序出现,并与程序通常会生成的输出交错.
同
module TraceIt where
import Debug.Trace
funct :: Integer -> [Integer] -> Bool
funct 10 list = null list
funct a list = trace (show list) $ funct (a + 1) (a : list)
Run Code Online (Sandbox Code Playgroud)
我明白了
*TraceIt> funct 1 []
[]
[1]
[2,1]
[3,2,1]
[4,3,2,1]
[5,4,3,2,1]
[6,5,4,3,2,1]
[7,6,5,4,3,2,1]
[8,7,6,5,4,3,2,1]
False
Run Code Online (Sandbox Code Playgroud)
正如所料.