gpt4 book ai didi

Haskell - 如何打印函数中的某些值以进行调试?

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

我是 Haskell 新手,我想做一些有如下副作用的事情:

i = 3.0

main :: IO ()
main = let m = print i in putStrLn "Hello world"

然后我可以在main运行时知道i的值,但是I没有打印。我在 m 之前添加 ! 但它也不起作用。我想知道如何解决这个问题,提前致谢!

最佳答案

要进行调试,请使用 trace 等。

import Debug.Trace
i = 3.0

main :: IO ()
main = traceShow i $ putStrLn "Hello world"

See it live

请注意,跟踪显示在标准错误流上,正如调试输出应该的那样。

您使用 trace 的函数不必是 IO 类型的。例如,这也可以工作:

add a b = a + traceShow i b

跟踪函数对于 Haskell 来说有点陌生,因为它们在技术上不纯粹。然而,副作用的范围有限,程序本身无法观察到,所以还可以。

More info

关于Haskell - 如何打印函数中的某些值以进行调试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53441113/

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