gpt4 book ai didi

Haskell 调试

转载 作者:行者123 更新时间:2023-12-04 13:42:24 27 4
gpt4 key购买 nike

如何在每次通话时打印列表或 haskell 中的内容,例如:

funct a list = funct (a + 1) (a : list) 
print list here ??????? but how ?

最佳答案

对于调试,有

import Debug.Trace

funct :: Integer -> [Integer] -> Bool
funct a list = trace (show list) $ funct (a + 1) (a : list)

在哪里 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)

我明白了
*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

正如预期的那样。

关于Haskell 调试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10263505/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com