Max*_*xym 11 evaluation haskell lazy-evaluation data-structures strictness
我做了非常耗时的算法,结果产生了一个短字符串.当我尝试打印它(通过putStrLn)时,它会逐个字符显示在屏幕上.我确实理解为什么会这样,我试图在实际打印之前强制评估字符串.
myPrint !str = putStrLn str
Run Code Online (Sandbox Code Playgroud)
但这帮助很少.当我在调试中运行程序时,我注意到!str强制仅对第一个字符进行评估.
有谁知道为什么会这样,以及如何处理这个?